reservation, and qos fields to compute resource perferences
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
index e77751a..19dd9e8 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.cpp
@@ -83,9 +83,24 @@
__isset.usageReportingGatewayId = true;
}
-void ComputeResourcePreference::__set_allocations(const std::string& val) {
- this->allocations = val;
-__isset.allocations = true;
+void ComputeResourcePreference::__set_qualityOfService(const std::string& val) {
+ this->qualityOfService = val;
+__isset.qualityOfService = true;
+}
+
+void ComputeResourcePreference::__set_reservation(const std::string& val) {
+ this->reservation = val;
+__isset.reservation = true;
+}
+
+void ComputeResourcePreference::__set_reservationStartTime(const int64_t val) {
+ this->reservationStartTime = val;
+__isset.reservationStartTime = true;
+}
+
+void ComputeResourcePreference::__set_reservationEndTime(const int64_t val) {
+ this->reservationEndTime = val;
+__isset.reservationEndTime = true;
}
uint32_t ComputeResourcePreference::read(::apache::thrift::protocol::TProtocol* iprot) {
@@ -197,8 +212,32 @@
break;
case 11:
if (ftype == ::apache::thrift::protocol::T_STRING) {
- xfer += iprot->readString(this->allocations);
- this->__isset.allocations = true;
+ xfer += iprot->readString(this->qualityOfService);
+ this->__isset.qualityOfService = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 12:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->reservation);
+ this->__isset.reservation = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 13:
+ if (ftype == ::apache::thrift::protocol::T_I64) {
+ xfer += iprot->readI64(this->reservationStartTime);
+ this->__isset.reservationStartTime = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 14:
+ if (ftype == ::apache::thrift::protocol::T_I64) {
+ xfer += iprot->readI64(this->reservationEndTime);
+ this->__isset.reservationEndTime = true;
} else {
xfer += iprot->skip(ftype);
}
@@ -272,9 +311,24 @@
xfer += oprot->writeString(this->usageReportingGatewayId);
xfer += oprot->writeFieldEnd();
}
- if (this->__isset.allocations) {
- xfer += oprot->writeFieldBegin("allocations", ::apache::thrift::protocol::T_STRING, 11);
- xfer += oprot->writeString(this->allocations);
+ if (this->__isset.qualityOfService) {
+ xfer += oprot->writeFieldBegin("qualityOfService", ::apache::thrift::protocol::T_STRING, 11);
+ xfer += oprot->writeString(this->qualityOfService);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.reservation) {
+ xfer += oprot->writeFieldBegin("reservation", ::apache::thrift::protocol::T_STRING, 12);
+ xfer += oprot->writeString(this->reservation);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.reservationStartTime) {
+ xfer += oprot->writeFieldBegin("reservationStartTime", ::apache::thrift::protocol::T_I64, 13);
+ xfer += oprot->writeI64(this->reservationStartTime);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.reservationEndTime) {
+ xfer += oprot->writeFieldBegin("reservationEndTime", ::apache::thrift::protocol::T_I64, 14);
+ xfer += oprot->writeI64(this->reservationEndTime);
xfer += oprot->writeFieldEnd();
}
xfer += oprot->writeFieldStop();
@@ -294,7 +348,10 @@
swap(a.allocationProjectNumber, b.allocationProjectNumber);
swap(a.resourceSpecificCredentialStoreToken, b.resourceSpecificCredentialStoreToken);
swap(a.usageReportingGatewayId, b.usageReportingGatewayId);
- swap(a.allocations, b.allocations);
+ swap(a.qualityOfService, b.qualityOfService);
+ swap(a.reservation, b.reservation);
+ swap(a.reservationStartTime, b.reservationStartTime);
+ swap(a.reservationEndTime, b.reservationEndTime);
swap(a.__isset, b.__isset);
}
@@ -309,7 +366,10 @@
allocationProjectNumber = other2.allocationProjectNumber;
resourceSpecificCredentialStoreToken = other2.resourceSpecificCredentialStoreToken;
usageReportingGatewayId = other2.usageReportingGatewayId;
- allocations = other2.allocations;
+ qualityOfService = other2.qualityOfService;
+ reservation = other2.reservation;
+ reservationStartTime = other2.reservationStartTime;
+ reservationEndTime = other2.reservationEndTime;
__isset = other2.__isset;
}
ComputeResourcePreference& ComputeResourcePreference::operator=(const ComputeResourcePreference& other3) {
@@ -323,7 +383,10 @@
allocationProjectNumber = other3.allocationProjectNumber;
resourceSpecificCredentialStoreToken = other3.resourceSpecificCredentialStoreToken;
usageReportingGatewayId = other3.usageReportingGatewayId;
- allocations = other3.allocations;
+ qualityOfService = other3.qualityOfService;
+ reservation = other3.reservation;
+ reservationStartTime = other3.reservationStartTime;
+ reservationEndTime = other3.reservationEndTime;
__isset = other3.__isset;
return *this;
}
@@ -340,7 +403,10 @@
out << ", " << "allocationProjectNumber="; (__isset.allocationProjectNumber ? (out << to_string(allocationProjectNumber)) : (out << "<null>"));
out << ", " << "resourceSpecificCredentialStoreToken="; (__isset.resourceSpecificCredentialStoreToken ? (out << to_string(resourceSpecificCredentialStoreToken)) : (out << "<null>"));
out << ", " << "usageReportingGatewayId="; (__isset.usageReportingGatewayId ? (out << to_string(usageReportingGatewayId)) : (out << "<null>"));
- out << ", " << "allocations="; (__isset.allocations ? (out << to_string(allocations)) : (out << "<null>"));
+ out << ", " << "qualityOfService="; (__isset.qualityOfService ? (out << to_string(qualityOfService)) : (out << "<null>"));
+ out << ", " << "reservation="; (__isset.reservation ? (out << to_string(reservation)) : (out << "<null>"));
+ out << ", " << "reservationStartTime="; (__isset.reservationStartTime ? (out << to_string(reservationStartTime)) : (out << "<null>"));
+ out << ", " << "reservationEndTime="; (__isset.reservationEndTime ? (out << to_string(reservationEndTime)) : (out << "<null>"));
out << ")";
}
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
index b62ada0..a8eb680 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/gateway_resource_profile_model_types.h
@@ -45,7 +45,7 @@
class GatewayResourceProfile;
typedef struct _ComputeResourcePreference__isset {
- _ComputeResourcePreference__isset() : loginUserName(false), preferredJobSubmissionProtocol(false), preferredDataMovementProtocol(false), preferredBatchQueue(false), scratchLocation(false), allocationProjectNumber(false), resourceSpecificCredentialStoreToken(false), usageReportingGatewayId(false), allocations(false) {}
+ _ComputeResourcePreference__isset() : loginUserName(false), preferredJobSubmissionProtocol(false), preferredDataMovementProtocol(false), preferredBatchQueue(false), scratchLocation(false), allocationProjectNumber(false), resourceSpecificCredentialStoreToken(false), usageReportingGatewayId(false), qualityOfService(false), reservation(false), reservationStartTime(false), reservationEndTime(false) {}
bool loginUserName :1;
bool preferredJobSubmissionProtocol :1;
bool preferredDataMovementProtocol :1;
@@ -54,7 +54,10 @@
bool allocationProjectNumber :1;
bool resourceSpecificCredentialStoreToken :1;
bool usageReportingGatewayId :1;
- bool allocations :1;
+ bool qualityOfService :1;
+ bool reservation :1;
+ bool reservationStartTime :1;
+ bool reservationEndTime :1;
} _ComputeResourcePreference__isset;
class ComputeResourcePreference {
@@ -62,7 +65,7 @@
ComputeResourcePreference(const ComputeResourcePreference&);
ComputeResourcePreference& operator=(const ComputeResourcePreference&);
- ComputeResourcePreference() : computeResourceId(), overridebyAiravata(true), loginUserName(), preferredJobSubmissionProtocol(( ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type)0), preferredDataMovementProtocol(( ::apache::airavata::model::data::movement::DataMovementProtocol::type)0), preferredBatchQueue(), scratchLocation(), allocationProjectNumber(), resourceSpecificCredentialStoreToken(), usageReportingGatewayId(), allocations() {
+ ComputeResourcePreference() : computeResourceId(), overridebyAiravata(true), loginUserName(), preferredJobSubmissionProtocol(( ::apache::airavata::model::appcatalog::computeresource::JobSubmissionProtocol::type)0), preferredDataMovementProtocol(( ::apache::airavata::model::data::movement::DataMovementProtocol::type)0), preferredBatchQueue(), scratchLocation(), allocationProjectNumber(), resourceSpecificCredentialStoreToken(), usageReportingGatewayId(), qualityOfService(), reservation(), reservationStartTime(0), reservationEndTime(0) {
}
virtual ~ComputeResourcePreference() throw();
@@ -76,7 +79,10 @@
std::string allocationProjectNumber;
std::string resourceSpecificCredentialStoreToken;
std::string usageReportingGatewayId;
- std::string allocations;
+ std::string qualityOfService;
+ std::string reservation;
+ int64_t reservationStartTime;
+ int64_t reservationEndTime;
_ComputeResourcePreference__isset __isset;
@@ -100,7 +106,13 @@
void __set_usageReportingGatewayId(const std::string& val);
- void __set_allocations(const std::string& val);
+ void __set_qualityOfService(const std::string& val);
+
+ void __set_reservation(const std::string& val);
+
+ void __set_reservationStartTime(const int64_t val);
+
+ void __set_reservationEndTime(const int64_t val);
bool operator == (const ComputeResourcePreference & rhs) const
{
@@ -140,9 +152,21 @@
return false;
else if (__isset.usageReportingGatewayId && !(usageReportingGatewayId == rhs.usageReportingGatewayId))
return false;
- if (__isset.allocations != rhs.__isset.allocations)
+ if (__isset.qualityOfService != rhs.__isset.qualityOfService)
return false;
- else if (__isset.allocations && !(allocations == rhs.allocations))
+ else if (__isset.qualityOfService && !(qualityOfService == rhs.qualityOfService))
+ return false;
+ if (__isset.reservation != rhs.__isset.reservation)
+ return false;
+ else if (__isset.reservation && !(reservation == rhs.reservation))
+ return false;
+ if (__isset.reservationStartTime != rhs.__isset.reservationStartTime)
+ return false;
+ else if (__isset.reservationStartTime && !(reservationStartTime == rhs.reservationStartTime))
+ return false;
+ if (__isset.reservationEndTime != rhs.__isset.reservationEndTime)
+ return false;
+ else if (__isset.reservationEndTime && !(reservationEndTime == rhs.reservationEndTime))
return false;
return true;
}
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
index 85a4f27..f0b329d 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/GatewayProfile/Types.php
@@ -97,7 +97,19 @@
/**
* @var string
*/
- public $allocations = null;
+ public $qualityOfService = null;
+ /**
+ * @var string
+ */
+ public $reservation = null;
+ /**
+ * @var int
+ */
+ public $reservationStartTime = null;
+ /**
+ * @var int
+ */
+ public $reservationEndTime = null;
public function __construct($vals=null) {
if (!isset(self::$_TSPEC)) {
@@ -143,9 +155,21 @@
'type' => TType::STRING,
),
11 => array(
- 'var' => 'allocations',
+ 'var' => 'qualityOfService',
'type' => TType::STRING,
),
+ 12 => array(
+ 'var' => 'reservation',
+ 'type' => TType::STRING,
+ ),
+ 13 => array(
+ 'var' => 'reservationStartTime',
+ 'type' => TType::I64,
+ ),
+ 14 => array(
+ 'var' => 'reservationEndTime',
+ 'type' => TType::I64,
+ ),
);
}
if (is_array($vals)) {
@@ -179,8 +203,17 @@
if (isset($vals['usageReportingGatewayId'])) {
$this->usageReportingGatewayId = $vals['usageReportingGatewayId'];
}
- if (isset($vals['allocations'])) {
- $this->allocations = $vals['allocations'];
+ if (isset($vals['qualityOfService'])) {
+ $this->qualityOfService = $vals['qualityOfService'];
+ }
+ if (isset($vals['reservation'])) {
+ $this->reservation = $vals['reservation'];
+ }
+ if (isset($vals['reservationStartTime'])) {
+ $this->reservationStartTime = $vals['reservationStartTime'];
+ }
+ if (isset($vals['reservationEndTime'])) {
+ $this->reservationEndTime = $vals['reservationEndTime'];
}
}
}
@@ -276,7 +309,28 @@
break;
case 11:
if ($ftype == TType::STRING) {
- $xfer += $input->readString($this->allocations);
+ $xfer += $input->readString($this->qualityOfService);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 12:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->reservation);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 13:
+ if ($ftype == TType::I64) {
+ $xfer += $input->readI64($this->reservationStartTime);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 14:
+ if ($ftype == TType::I64) {
+ $xfer += $input->readI64($this->reservationEndTime);
} else {
$xfer += $input->skip($ftype);
}
@@ -344,9 +398,24 @@
$xfer += $output->writeString($this->usageReportingGatewayId);
$xfer += $output->writeFieldEnd();
}
- if ($this->allocations !== null) {
- $xfer += $output->writeFieldBegin('allocations', TType::STRING, 11);
- $xfer += $output->writeString($this->allocations);
+ if ($this->qualityOfService !== null) {
+ $xfer += $output->writeFieldBegin('qualityOfService', TType::STRING, 11);
+ $xfer += $output->writeString($this->qualityOfService);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->reservation !== null) {
+ $xfer += $output->writeFieldBegin('reservation', TType::STRING, 12);
+ $xfer += $output->writeString($this->reservation);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->reservationStartTime !== null) {
+ $xfer += $output->writeFieldBegin('reservationStartTime', TType::I64, 13);
+ $xfer += $output->writeI64($this->reservationStartTime);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->reservationEndTime !== null) {
+ $xfer += $output->writeFieldBegin('reservationEndTime', TType::I64, 14);
+ $xfer += $output->writeI64($this->reservationEndTime);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
index e02cf2a..ecb93e8 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/appcatalog/gatewayprofile/ttypes.py
@@ -66,7 +66,10 @@
- allocationProjectNumber
- resourceSpecificCredentialStoreToken
- usageReportingGatewayId
- - allocations
+ - qualityOfService
+ - reservation
+ - reservationStartTime
+ - reservationEndTime
"""
thrift_spec = (
@@ -81,10 +84,13 @@
(8, TType.STRING, 'allocationProjectNumber', None, None, ), # 8
(9, TType.STRING, 'resourceSpecificCredentialStoreToken', None, None, ), # 9
(10, TType.STRING, 'usageReportingGatewayId', None, None, ), # 10
- (11, TType.STRING, 'allocations', None, None, ), # 11
+ (11, TType.STRING, 'qualityOfService', None, None, ), # 11
+ (12, TType.STRING, 'reservation', None, None, ), # 12
+ (13, TType.I64, 'reservationStartTime', None, None, ), # 13
+ (14, TType.I64, 'reservationEndTime', None, None, ), # 14
)
- def __init__(self, computeResourceId=None, overridebyAiravata=thrift_spec[2][4], loginUserName=None, preferredJobSubmissionProtocol=None, preferredDataMovementProtocol=None, preferredBatchQueue=None, scratchLocation=None, allocationProjectNumber=None, resourceSpecificCredentialStoreToken=None, usageReportingGatewayId=None, allocations=None,):
+ def __init__(self, computeResourceId=None, overridebyAiravata=thrift_spec[2][4], loginUserName=None, preferredJobSubmissionProtocol=None, preferredDataMovementProtocol=None, preferredBatchQueue=None, scratchLocation=None, allocationProjectNumber=None, resourceSpecificCredentialStoreToken=None, usageReportingGatewayId=None, qualityOfService=None, reservation=None, reservationStartTime=None, reservationEndTime=None,):
self.computeResourceId = computeResourceId
self.overridebyAiravata = overridebyAiravata
self.loginUserName = loginUserName
@@ -95,7 +101,10 @@
self.allocationProjectNumber = allocationProjectNumber
self.resourceSpecificCredentialStoreToken = resourceSpecificCredentialStoreToken
self.usageReportingGatewayId = usageReportingGatewayId
- self.allocations = allocations
+ self.qualityOfService = qualityOfService
+ self.reservation = reservation
+ self.reservationStartTime = reservationStartTime
+ self.reservationEndTime = reservationEndTime
def read(self, iprot):
if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -158,7 +167,22 @@
iprot.skip(ftype)
elif fid == 11:
if ftype == TType.STRING:
- self.allocations = iprot.readString()
+ self.qualityOfService = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 12:
+ if ftype == TType.STRING:
+ self.reservation = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 13:
+ if ftype == TType.I64:
+ self.reservationStartTime = iprot.readI64()
+ else:
+ iprot.skip(ftype)
+ elif fid == 14:
+ if ftype == TType.I64:
+ self.reservationEndTime = iprot.readI64()
else:
iprot.skip(ftype)
else:
@@ -211,9 +235,21 @@
oprot.writeFieldBegin('usageReportingGatewayId', TType.STRING, 10)
oprot.writeString(self.usageReportingGatewayId)
oprot.writeFieldEnd()
- if self.allocations is not None:
- oprot.writeFieldBegin('allocations', TType.STRING, 11)
- oprot.writeString(self.allocations)
+ if self.qualityOfService is not None:
+ oprot.writeFieldBegin('qualityOfService', TType.STRING, 11)
+ oprot.writeString(self.qualityOfService)
+ oprot.writeFieldEnd()
+ if self.reservation is not None:
+ oprot.writeFieldBegin('reservation', TType.STRING, 12)
+ oprot.writeString(self.reservation)
+ oprot.writeFieldEnd()
+ if self.reservationStartTime is not None:
+ oprot.writeFieldBegin('reservationStartTime', TType.I64, 13)
+ oprot.writeI64(self.reservationStartTime)
+ oprot.writeFieldEnd()
+ if self.reservationEndTime is not None:
+ oprot.writeFieldBegin('reservationEndTime', TType.I64, 14)
+ oprot.writeI64(self.reservationEndTime)
oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
@@ -238,7 +274,10 @@
value = (value * 31) ^ hash(self.allocationProjectNumber)
value = (value * 31) ^ hash(self.resourceSpecificCredentialStoreToken)
value = (value * 31) ^ hash(self.usageReportingGatewayId)
- value = (value * 31) ^ hash(self.allocations)
+ value = (value * 31) ^ hash(self.qualityOfService)
+ value = (value * 31) ^ hash(self.reservation)
+ value = (value * 31) ^ hash(self.reservationStartTime)
+ value = (value * 31) ^ hash(self.reservationEndTime)
return value
def __repr__(self):
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
index d92c159..b1c092b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/gatewayprofile/ComputeResourcePreference.java
@@ -99,7 +99,10 @@
private static final org.apache.thrift.protocol.TField ALLOCATION_PROJECT_NUMBER_FIELD_DESC = new org.apache.thrift.protocol.TField("allocationProjectNumber", org.apache.thrift.protocol.TType.STRING, (short)8);
private static final org.apache.thrift.protocol.TField RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("resourceSpecificCredentialStoreToken", org.apache.thrift.protocol.TType.STRING, (short)9);
private static final org.apache.thrift.protocol.TField USAGE_REPORTING_GATEWAY_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("usageReportingGatewayId", org.apache.thrift.protocol.TType.STRING, (short)10);
- private static final org.apache.thrift.protocol.TField ALLOCATIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("allocations", org.apache.thrift.protocol.TType.STRING, (short)11);
+ private static final org.apache.thrift.protocol.TField QUALITY_OF_SERVICE_FIELD_DESC = new org.apache.thrift.protocol.TField("qualityOfService", org.apache.thrift.protocol.TType.STRING, (short)11);
+ private static final org.apache.thrift.protocol.TField RESERVATION_FIELD_DESC = new org.apache.thrift.protocol.TField("reservation", org.apache.thrift.protocol.TType.STRING, (short)12);
+ private static final org.apache.thrift.protocol.TField RESERVATION_START_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("reservationStartTime", org.apache.thrift.protocol.TType.I64, (short)13);
+ private static final org.apache.thrift.protocol.TField RESERVATION_END_TIME_FIELD_DESC = new org.apache.thrift.protocol.TField("reservationEndTime", org.apache.thrift.protocol.TType.I64, (short)14);
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
static {
@@ -117,7 +120,10 @@
private String allocationProjectNumber; // optional
private String resourceSpecificCredentialStoreToken; // optional
private String usageReportingGatewayId; // optional
- private String allocations; // optional
+ private String qualityOfService; // optional
+ private String reservation; // optional
+ private long reservationStartTime; // optional
+ private long reservationEndTime; // optional
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -139,7 +145,10 @@
ALLOCATION_PROJECT_NUMBER((short)8, "allocationProjectNumber"),
RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN((short)9, "resourceSpecificCredentialStoreToken"),
USAGE_REPORTING_GATEWAY_ID((short)10, "usageReportingGatewayId"),
- ALLOCATIONS((short)11, "allocations");
+ QUALITY_OF_SERVICE((short)11, "qualityOfService"),
+ RESERVATION((short)12, "reservation"),
+ RESERVATION_START_TIME((short)13, "reservationStartTime"),
+ RESERVATION_END_TIME((short)14, "reservationEndTime");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -174,8 +183,14 @@
return RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN;
case 10: // USAGE_REPORTING_GATEWAY_ID
return USAGE_REPORTING_GATEWAY_ID;
- case 11: // ALLOCATIONS
- return ALLOCATIONS;
+ case 11: // QUALITY_OF_SERVICE
+ return QUALITY_OF_SERVICE;
+ case 12: // RESERVATION
+ return RESERVATION;
+ case 13: // RESERVATION_START_TIME
+ return RESERVATION_START_TIME;
+ case 14: // RESERVATION_END_TIME
+ return RESERVATION_END_TIME;
default:
return null;
}
@@ -217,8 +232,10 @@
// isset id assignments
private static final int __OVERRIDEBYAIRAVATA_ISSET_ID = 0;
+ private static final int __RESERVATIONSTARTTIME_ISSET_ID = 1;
+ private static final int __RESERVATIONENDTIME_ISSET_ID = 2;
private byte __isset_bitfield = 0;
- private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL,_Fields.PREFERRED_DATA_MOVEMENT_PROTOCOL,_Fields.PREFERRED_BATCH_QUEUE,_Fields.SCRATCH_LOCATION,_Fields.ALLOCATION_PROJECT_NUMBER,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN,_Fields.USAGE_REPORTING_GATEWAY_ID,_Fields.ALLOCATIONS};
+ private static final _Fields optionals[] = {_Fields.LOGIN_USER_NAME,_Fields.PREFERRED_JOB_SUBMISSION_PROTOCOL,_Fields.PREFERRED_DATA_MOVEMENT_PROTOCOL,_Fields.PREFERRED_BATCH_QUEUE,_Fields.SCRATCH_LOCATION,_Fields.ALLOCATION_PROJECT_NUMBER,_Fields.RESOURCE_SPECIFIC_CREDENTIAL_STORE_TOKEN,_Fields.USAGE_REPORTING_GATEWAY_ID,_Fields.QUALITY_OF_SERVICE,_Fields.RESERVATION,_Fields.RESERVATION_START_TIME,_Fields.RESERVATION_END_TIME};
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);
@@ -242,8 +259,14 @@
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
tmpMap.put(_Fields.USAGE_REPORTING_GATEWAY_ID, new org.apache.thrift.meta_data.FieldMetaData("usageReportingGatewayId", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
- tmpMap.put(_Fields.ALLOCATIONS, new org.apache.thrift.meta_data.FieldMetaData("allocations", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ tmpMap.put(_Fields.QUALITY_OF_SERVICE, new org.apache.thrift.meta_data.FieldMetaData("qualityOfService", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.RESERVATION, new org.apache.thrift.meta_data.FieldMetaData("reservation", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.RESERVATION_START_TIME, new org.apache.thrift.meta_data.FieldMetaData("reservationStartTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
+ tmpMap.put(_Fields.RESERVATION_END_TIME, new org.apache.thrift.meta_data.FieldMetaData("reservationEndTime", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
metaDataMap = Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ComputeResourcePreference.class, metaDataMap);
}
@@ -296,9 +319,14 @@
if (other.isSetUsageReportingGatewayId()) {
this.usageReportingGatewayId = other.usageReportingGatewayId;
}
- if (other.isSetAllocations()) {
- this.allocations = other.allocations;
+ if (other.isSetQualityOfService()) {
+ this.qualityOfService = other.qualityOfService;
}
+ if (other.isSetReservation()) {
+ this.reservation = other.reservation;
+ }
+ this.reservationStartTime = other.reservationStartTime;
+ this.reservationEndTime = other.reservationEndTime;
}
public ComputeResourcePreference deepCopy() {
@@ -318,7 +346,12 @@
this.allocationProjectNumber = null;
this.resourceSpecificCredentialStoreToken = null;
this.usageReportingGatewayId = null;
- this.allocations = null;
+ this.qualityOfService = null;
+ this.reservation = null;
+ setReservationStartTimeIsSet(false);
+ this.reservationStartTime = 0;
+ setReservationEndTimeIsSet(false);
+ this.reservationEndTime = 0;
}
public String getComputeResourceId() {
@@ -566,29 +599,96 @@
}
}
- public String getAllocations() {
- return this.allocations;
+ public String getQualityOfService() {
+ return this.qualityOfService;
}
- public void setAllocations(String allocations) {
- this.allocations = allocations;
+ public void setQualityOfService(String qualityOfService) {
+ this.qualityOfService = qualityOfService;
}
- public void unsetAllocations() {
- this.allocations = null;
+ public void unsetQualityOfService() {
+ this.qualityOfService = null;
}
- /** Returns true if field allocations is set (has been assigned a value) and false otherwise */
- public boolean isSetAllocations() {
- return this.allocations != null;
+ /** Returns true if field qualityOfService is set (has been assigned a value) and false otherwise */
+ public boolean isSetQualityOfService() {
+ return this.qualityOfService != null;
}
- public void setAllocationsIsSet(boolean value) {
+ public void setQualityOfServiceIsSet(boolean value) {
if (!value) {
- this.allocations = null;
+ this.qualityOfService = null;
}
}
+ public String getReservation() {
+ return this.reservation;
+ }
+
+ public void setReservation(String reservation) {
+ this.reservation = reservation;
+ }
+
+ public void unsetReservation() {
+ this.reservation = null;
+ }
+
+ /** Returns true if field reservation is set (has been assigned a value) and false otherwise */
+ public boolean isSetReservation() {
+ return this.reservation != null;
+ }
+
+ public void setReservationIsSet(boolean value) {
+ if (!value) {
+ this.reservation = null;
+ }
+ }
+
+ public long getReservationStartTime() {
+ return this.reservationStartTime;
+ }
+
+ public void setReservationStartTime(long reservationStartTime) {
+ this.reservationStartTime = reservationStartTime;
+ setReservationStartTimeIsSet(true);
+ }
+
+ public void unsetReservationStartTime() {
+ __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID);
+ }
+
+ /** Returns true if field reservationStartTime is set (has been assigned a value) and false otherwise */
+ public boolean isSetReservationStartTime() {
+ return EncodingUtils.testBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID);
+ }
+
+ public void setReservationStartTimeIsSet(boolean value) {
+ __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESERVATIONSTARTTIME_ISSET_ID, value);
+ }
+
+ public long getReservationEndTime() {
+ return this.reservationEndTime;
+ }
+
+ public void setReservationEndTime(long reservationEndTime) {
+ this.reservationEndTime = reservationEndTime;
+ setReservationEndTimeIsSet(true);
+ }
+
+ public void unsetReservationEndTime() {
+ __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID);
+ }
+
+ /** Returns true if field reservationEndTime is set (has been assigned a value) and false otherwise */
+ public boolean isSetReservationEndTime() {
+ return EncodingUtils.testBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID);
+ }
+
+ public void setReservationEndTimeIsSet(boolean value) {
+ __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RESERVATIONENDTIME_ISSET_ID, value);
+ }
+
public void setFieldValue(_Fields field, Object value) {
switch (field) {
case COMPUTE_RESOURCE_ID:
@@ -671,11 +771,35 @@
}
break;
- case ALLOCATIONS:
+ case QUALITY_OF_SERVICE:
if (value == null) {
- unsetAllocations();
+ unsetQualityOfService();
} else {
- setAllocations((String)value);
+ setQualityOfService((String)value);
+ }
+ break;
+
+ case RESERVATION:
+ if (value == null) {
+ unsetReservation();
+ } else {
+ setReservation((String)value);
+ }
+ break;
+
+ case RESERVATION_START_TIME:
+ if (value == null) {
+ unsetReservationStartTime();
+ } else {
+ setReservationStartTime((Long)value);
+ }
+ break;
+
+ case RESERVATION_END_TIME:
+ if (value == null) {
+ unsetReservationEndTime();
+ } else {
+ setReservationEndTime((Long)value);
}
break;
@@ -714,8 +838,17 @@
case USAGE_REPORTING_GATEWAY_ID:
return getUsageReportingGatewayId();
- case ALLOCATIONS:
- return getAllocations();
+ case QUALITY_OF_SERVICE:
+ return getQualityOfService();
+
+ case RESERVATION:
+ return getReservation();
+
+ case RESERVATION_START_TIME:
+ return getReservationStartTime();
+
+ case RESERVATION_END_TIME:
+ return getReservationEndTime();
}
throw new IllegalStateException();
@@ -748,8 +881,14 @@
return isSetResourceSpecificCredentialStoreToken();
case USAGE_REPORTING_GATEWAY_ID:
return isSetUsageReportingGatewayId();
- case ALLOCATIONS:
- return isSetAllocations();
+ case QUALITY_OF_SERVICE:
+ return isSetQualityOfService();
+ case RESERVATION:
+ return isSetReservation();
+ case RESERVATION_START_TIME:
+ return isSetReservationStartTime();
+ case RESERVATION_END_TIME:
+ return isSetReservationEndTime();
}
throw new IllegalStateException();
}
@@ -857,12 +996,39 @@
return false;
}
- boolean this_present_allocations = true && this.isSetAllocations();
- boolean that_present_allocations = true && that.isSetAllocations();
- if (this_present_allocations || that_present_allocations) {
- if (!(this_present_allocations && that_present_allocations))
+ boolean this_present_qualityOfService = true && this.isSetQualityOfService();
+ boolean that_present_qualityOfService = true && that.isSetQualityOfService();
+ if (this_present_qualityOfService || that_present_qualityOfService) {
+ if (!(this_present_qualityOfService && that_present_qualityOfService))
return false;
- if (!this.allocations.equals(that.allocations))
+ if (!this.qualityOfService.equals(that.qualityOfService))
+ return false;
+ }
+
+ boolean this_present_reservation = true && this.isSetReservation();
+ boolean that_present_reservation = true && that.isSetReservation();
+ if (this_present_reservation || that_present_reservation) {
+ if (!(this_present_reservation && that_present_reservation))
+ return false;
+ if (!this.reservation.equals(that.reservation))
+ return false;
+ }
+
+ boolean this_present_reservationStartTime = true && this.isSetReservationStartTime();
+ boolean that_present_reservationStartTime = true && that.isSetReservationStartTime();
+ if (this_present_reservationStartTime || that_present_reservationStartTime) {
+ if (!(this_present_reservationStartTime && that_present_reservationStartTime))
+ return false;
+ if (this.reservationStartTime != that.reservationStartTime)
+ return false;
+ }
+
+ boolean this_present_reservationEndTime = true && this.isSetReservationEndTime();
+ boolean that_present_reservationEndTime = true && that.isSetReservationEndTime();
+ if (this_present_reservationEndTime || that_present_reservationEndTime) {
+ if (!(this_present_reservationEndTime && that_present_reservationEndTime))
+ return false;
+ if (this.reservationEndTime != that.reservationEndTime)
return false;
}
@@ -923,10 +1089,25 @@
if (present_usageReportingGatewayId)
list.add(usageReportingGatewayId);
- boolean present_allocations = true && (isSetAllocations());
- list.add(present_allocations);
- if (present_allocations)
- list.add(allocations);
+ boolean present_qualityOfService = true && (isSetQualityOfService());
+ list.add(present_qualityOfService);
+ if (present_qualityOfService)
+ list.add(qualityOfService);
+
+ boolean present_reservation = true && (isSetReservation());
+ list.add(present_reservation);
+ if (present_reservation)
+ list.add(reservation);
+
+ boolean present_reservationStartTime = true && (isSetReservationStartTime());
+ list.add(present_reservationStartTime);
+ if (present_reservationStartTime)
+ list.add(reservationStartTime);
+
+ boolean present_reservationEndTime = true && (isSetReservationEndTime());
+ list.add(present_reservationEndTime);
+ if (present_reservationEndTime)
+ list.add(reservationEndTime);
return list.hashCode();
}
@@ -1039,12 +1220,42 @@
return lastComparison;
}
}
- lastComparison = Boolean.valueOf(isSetAllocations()).compareTo(other.isSetAllocations());
+ lastComparison = Boolean.valueOf(isSetQualityOfService()).compareTo(other.isSetQualityOfService());
if (lastComparison != 0) {
return lastComparison;
}
- if (isSetAllocations()) {
- lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.allocations, other.allocations);
+ if (isSetQualityOfService()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.qualityOfService, other.qualityOfService);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetReservation()).compareTo(other.isSetReservation());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetReservation()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservation, other.reservation);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetReservationStartTime()).compareTo(other.isSetReservationStartTime());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetReservationStartTime()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservationStartTime, other.reservationStartTime);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetReservationEndTime()).compareTo(other.isSetReservationEndTime());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetReservationEndTime()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reservationEndTime, other.reservationEndTime);
if (lastComparison != 0) {
return lastComparison;
}
@@ -1160,16 +1371,38 @@
}
first = false;
}
- if (isSetAllocations()) {
+ if (isSetQualityOfService()) {
if (!first) sb.append(", ");
- sb.append("allocations:");
- if (this.allocations == null) {
+ sb.append("qualityOfService:");
+ if (this.qualityOfService == null) {
sb.append("null");
} else {
- sb.append(this.allocations);
+ sb.append(this.qualityOfService);
}
first = false;
}
+ if (isSetReservation()) {
+ if (!first) sb.append(", ");
+ sb.append("reservation:");
+ if (this.reservation == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.reservation);
+ }
+ first = false;
+ }
+ if (isSetReservationStartTime()) {
+ if (!first) sb.append(", ");
+ sb.append("reservationStartTime:");
+ sb.append(this.reservationStartTime);
+ first = false;
+ }
+ if (isSetReservationEndTime()) {
+ if (!first) sb.append(", ");
+ sb.append("reservationEndTime:");
+ sb.append(this.reservationEndTime);
+ first = false;
+ }
sb.append(")");
return sb.toString();
}
@@ -1303,10 +1536,34 @@
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
- case 11: // ALLOCATIONS
+ case 11: // QUALITY_OF_SERVICE
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
- struct.allocations = iprot.readString();
- struct.setAllocationsIsSet(true);
+ struct.qualityOfService = iprot.readString();
+ struct.setQualityOfServiceIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 12: // RESERVATION
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.reservation = iprot.readString();
+ struct.setReservationIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 13: // RESERVATION_START_TIME
+ if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+ struct.reservationStartTime = iprot.readI64();
+ struct.setReservationStartTimeIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 14: // RESERVATION_END_TIME
+ if (schemeField.type == org.apache.thrift.protocol.TType.I64) {
+ struct.reservationEndTime = iprot.readI64();
+ struct.setReservationEndTimeIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -1388,13 +1645,30 @@
oprot.writeFieldEnd();
}
}
- if (struct.allocations != null) {
- if (struct.isSetAllocations()) {
- oprot.writeFieldBegin(ALLOCATIONS_FIELD_DESC);
- oprot.writeString(struct.allocations);
+ if (struct.qualityOfService != null) {
+ if (struct.isSetQualityOfService()) {
+ oprot.writeFieldBegin(QUALITY_OF_SERVICE_FIELD_DESC);
+ oprot.writeString(struct.qualityOfService);
oprot.writeFieldEnd();
}
}
+ if (struct.reservation != null) {
+ if (struct.isSetReservation()) {
+ oprot.writeFieldBegin(RESERVATION_FIELD_DESC);
+ oprot.writeString(struct.reservation);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.isSetReservationStartTime()) {
+ oprot.writeFieldBegin(RESERVATION_START_TIME_FIELD_DESC);
+ oprot.writeI64(struct.reservationStartTime);
+ oprot.writeFieldEnd();
+ }
+ if (struct.isSetReservationEndTime()) {
+ oprot.writeFieldBegin(RESERVATION_END_TIME_FIELD_DESC);
+ oprot.writeI64(struct.reservationEndTime);
+ oprot.writeFieldEnd();
+ }
oprot.writeFieldStop();
oprot.writeStructEnd();
}
@@ -1439,10 +1713,19 @@
if (struct.isSetUsageReportingGatewayId()) {
optionals.set(7);
}
- if (struct.isSetAllocations()) {
+ if (struct.isSetQualityOfService()) {
optionals.set(8);
}
- oprot.writeBitSet(optionals, 9);
+ if (struct.isSetReservation()) {
+ optionals.set(9);
+ }
+ if (struct.isSetReservationStartTime()) {
+ optionals.set(10);
+ }
+ if (struct.isSetReservationEndTime()) {
+ optionals.set(11);
+ }
+ oprot.writeBitSet(optionals, 12);
if (struct.isSetLoginUserName()) {
oprot.writeString(struct.loginUserName);
}
@@ -1467,8 +1750,17 @@
if (struct.isSetUsageReportingGatewayId()) {
oprot.writeString(struct.usageReportingGatewayId);
}
- if (struct.isSetAllocations()) {
- oprot.writeString(struct.allocations);
+ if (struct.isSetQualityOfService()) {
+ oprot.writeString(struct.qualityOfService);
+ }
+ if (struct.isSetReservation()) {
+ oprot.writeString(struct.reservation);
+ }
+ if (struct.isSetReservationStartTime()) {
+ oprot.writeI64(struct.reservationStartTime);
+ }
+ if (struct.isSetReservationEndTime()) {
+ oprot.writeI64(struct.reservationEndTime);
}
}
@@ -1479,7 +1771,7 @@
struct.setComputeResourceIdIsSet(true);
struct.overridebyAiravata = iprot.readBool();
struct.setOverridebyAiravataIsSet(true);
- BitSet incoming = iprot.readBitSet(9);
+ BitSet incoming = iprot.readBitSet(12);
if (incoming.get(0)) {
struct.loginUserName = iprot.readString();
struct.setLoginUserNameIsSet(true);
@@ -1513,8 +1805,20 @@
struct.setUsageReportingGatewayIdIsSet(true);
}
if (incoming.get(8)) {
- struct.allocations = iprot.readString();
- struct.setAllocationsIsSet(true);
+ struct.qualityOfService = iprot.readString();
+ struct.setQualityOfServiceIsSet(true);
+ }
+ if (incoming.get(9)) {
+ struct.reservation = iprot.readString();
+ struct.setReservationIsSet(true);
+ }
+ if (incoming.get(10)) {
+ struct.reservationStartTime = iprot.readI64();
+ struct.setReservationStartTimeIsSet(true);
+ }
+ if (incoming.get(11)) {
+ struct.reservationEndTime = iprot.readI64();
+ struct.setReservationEndTimeIsSet(true);
}
}
}
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
index 0915c0c..0bda74e 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
@@ -451,9 +451,17 @@
jobDescriptor.setExecutablePath(processContext.getApplicationDeploymentDescription().getExecutablePath());
jobDescriptor.setStandardOutFile(processContext.getStdoutLocation());
jobDescriptor.setStandardErrorFile(processContext.getStderrLocation());
- String computationalProjectAccount = getComputeResourcePreference(processContext).getAllocationProjectNumber();
- if (computationalProjectAccount != null) {
- jobDescriptor.setAcountString(computationalProjectAccount);
+ ComputeResourcePreference crp = getComputeResourcePreference(processContext);
+ if (crp.getAllocationProjectNumber() != null) {
+ jobDescriptor.setAcountString(crp.getAllocationProjectNumber());
+ }
+
+ if (crp.getQualityOfService() != null) {
+ jobDescriptor.setQoS(crp.getQualityOfService());
+ }
+
+ if (crp.getReservation() != null) {
+ jobDescriptor.setReservation(crp.getReservation());
}
// To make job name alpha numeric
jobDescriptor.setJobName("A" + String.valueOf(generateJobName()));
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/JobDescriptor.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/JobDescriptor.java
index 777681a..f1f72df 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/JobDescriptor.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/JobDescriptor.java
@@ -468,7 +468,22 @@
public void setChassisName(String chassisName){
this.getJobDescriptorDocument().getJobDescriptor().setChassisName(chassisName);
}
-
+ public void setQoS(String qos){
+ this.getJobDescriptorDocument().getJobDescriptor().setQualityOfService(qos);
+ }
+
+ public String getQoS() {
+ return this.getJobDescriptorDocument().getJobDescriptor().getQualityOfService();
+ }
+
+ public void setReservation(String reservation) {
+ this.getJobDescriptorDocument().getJobDescriptor().setReservation(reservation);
+ }
+
+ public String getReservation() {
+ return this.getJobDescriptorDocument().getJobDescriptor().getReservation();
+ }
+
}
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/AfterAnyList.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/AfterAnyList.java
index 013c90f..8c80646 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/AfterAnyList.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/AfterAnyList.java
@@ -35,7 +35,7 @@
public interface AfterAnyList extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(AfterAnyList.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("afteranylisteefatype");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(AfterAnyList.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("afteranylisteefatype");
/**
* Gets array of all "afterAny" elements
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/AfterOKList.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/AfterOKList.java
index 2bf15f5..15688c1 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/AfterOKList.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/AfterOKList.java
@@ -35,7 +35,7 @@
public interface AfterOKList extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(AfterOKList.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("afteroklistc764type");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(AfterOKList.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("afteroklistc764type");
/**
* Gets array of all "afterOKList" elements
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/ExportProperties.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/ExportProperties.java
index bee396b..8bea40c 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/ExportProperties.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/ExportProperties.java
@@ -35,7 +35,7 @@
public interface ExportProperties extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(ExportProperties.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("exportproperties2741type");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(ExportProperties.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("exportproperties2741type");
/**
* Gets array of all "name" elements
@@ -85,7 +85,7 @@
public interface Name extends org.apache.xmlbeans.XmlString
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(Name.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("namee668elemtype");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(Name.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("namee668elemtype");
/**
* Gets the "value" attribute
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/InputList.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/InputList.java
index 3d4cfbe..3c16f56 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/InputList.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/InputList.java
@@ -35,7 +35,7 @@
public interface InputList extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(InputList.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("inputlistccd2type");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(InputList.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("inputlistccd2type");
/**
* Gets array of all "input" elements
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/JobDescriptorDocument.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/JobDescriptorDocument.java
index 5df6f60..49563ae 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/JobDescriptorDocument.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/JobDescriptorDocument.java
@@ -36,7 +36,7 @@
public interface JobDescriptorDocument extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(JobDescriptorDocument.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("jobdescriptor217edoctype");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(JobDescriptorDocument.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("jobdescriptor217edoctype");
/**
* Gets the "JobDescriptor" element
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/ModuleLoadCommands.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/ModuleLoadCommands.java
index 520a797..991d6ef 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/ModuleLoadCommands.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/ModuleLoadCommands.java
@@ -35,7 +35,7 @@
public interface ModuleLoadCommands extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(ModuleLoadCommands.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("moduleloadcommandsfe4etype");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(ModuleLoadCommands.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("moduleloadcommandsfe4etype");
/**
* Gets array of all "command" elements
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PbsParams.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PbsParams.java
index dbba0c2..65d39f2 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PbsParams.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PbsParams.java
@@ -35,7 +35,7 @@
public interface PbsParams extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(PbsParams.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("pbsparams7913type");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(PbsParams.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("pbsparams7913type");
/**
* Gets the "jobID" element
@@ -1363,6 +1363,66 @@
void unsetChassisName();
/**
+ * Gets the "qualityOfService" element
+ */
+ java.lang.String getQualityOfService();
+
+ /**
+ * Gets (as xml) the "qualityOfService" element
+ */
+ org.apache.xmlbeans.XmlString xgetQualityOfService();
+
+ /**
+ * True if has "qualityOfService" element
+ */
+ boolean isSetQualityOfService();
+
+ /**
+ * Sets the "qualityOfService" element
+ */
+ void setQualityOfService(java.lang.String qualityOfService);
+
+ /**
+ * Sets (as xml) the "qualityOfService" element
+ */
+ void xsetQualityOfService(org.apache.xmlbeans.XmlString qualityOfService);
+
+ /**
+ * Unsets the "qualityOfService" element
+ */
+ void unsetQualityOfService();
+
+ /**
+ * Gets the "reservation" element
+ */
+ java.lang.String getReservation();
+
+ /**
+ * Gets (as xml) the "reservation" element
+ */
+ org.apache.xmlbeans.XmlString xgetReservation();
+
+ /**
+ * True if has "reservation" element
+ */
+ boolean isSetReservation();
+
+ /**
+ * Sets the "reservation" element
+ */
+ void setReservation(java.lang.String reservation);
+
+ /**
+ * Sets (as xml) the "reservation" element
+ */
+ void xsetReservation(org.apache.xmlbeans.XmlString reservation);
+
+ /**
+ * Unsets the "reservation" element
+ */
+ void unsetReservation();
+
+ /**
* A factory class with static methods for creating instances
* of this type.
*/
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PostJobCommands.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PostJobCommands.java
index d5a1926..512b230 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PostJobCommands.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PostJobCommands.java
@@ -35,7 +35,7 @@
public interface PostJobCommands extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(PostJobCommands.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("postjobcommandsf415type");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(PostJobCommands.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("postjobcommandsf415type");
/**
* Gets array of all "command" elements
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PreJobCommands.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PreJobCommands.java
index 154f925..a644cb5 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PreJobCommands.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/PreJobCommands.java
@@ -35,7 +35,7 @@
public interface PreJobCommands extends org.apache.xmlbeans.XmlObject
{
public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
- org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(PreJobCommands.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sCF8C40CE6FDA0A41BEE004F5930560FF").resolveHandle("prejobcommands6a26type");
+ org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(PreJobCommands.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.sD070E302A2FC7CFEA0F2B3EB44FAE57D").resolveHandle("prejobcommands6a26type");
/**
* Gets array of all "command" elements
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PbsParamsImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PbsParamsImpl.java
index 48d5638..cdb348b 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PbsParamsImpl.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PbsParamsImpl.java
@@ -131,6 +131,10 @@
new javax.xml.namespace.QName("http://airavata.apache.org/gfac/core/2012/12", "callBackPort");
private static final javax.xml.namespace.QName CHASSISNAME$90 =
new javax.xml.namespace.QName("http://airavata.apache.org/gfac/core/2012/12", "chassisName");
+ private static final javax.xml.namespace.QName QUALITYOFSERVICE$92 =
+ new javax.xml.namespace.QName("http://airavata.apache.org/gfac/core/2012/12", "qualityOfService");
+ private static final javax.xml.namespace.QName RESERVATION$94 =
+ new javax.xml.namespace.QName("http://airavata.apache.org/gfac/core/2012/12", "reservation");
/**
@@ -4190,4 +4194,188 @@
get_store().remove_element(CHASSISNAME$90, 0);
}
}
+
+ /**
+ * Gets the "qualityOfService" element
+ */
+ public java.lang.String getQualityOfService()
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ org.apache.xmlbeans.SimpleValue target = null;
+ target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(QUALITYOFSERVICE$92, 0);
+ if (target == null)
+ {
+ return null;
+ }
+ return target.getStringValue();
+ }
+ }
+
+ /**
+ * Gets (as xml) the "qualityOfService" element
+ */
+ public org.apache.xmlbeans.XmlString xgetQualityOfService()
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ org.apache.xmlbeans.XmlString target = null;
+ target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(QUALITYOFSERVICE$92, 0);
+ return target;
+ }
+ }
+
+ /**
+ * True if has "qualityOfService" element
+ */
+ public boolean isSetQualityOfService()
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ return get_store().count_elements(QUALITYOFSERVICE$92) != 0;
+ }
+ }
+
+ /**
+ * Sets the "qualityOfService" element
+ */
+ public void setQualityOfService(java.lang.String qualityOfService)
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ org.apache.xmlbeans.SimpleValue target = null;
+ target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(QUALITYOFSERVICE$92, 0);
+ if (target == null)
+ {
+ target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(QUALITYOFSERVICE$92);
+ }
+ target.setStringValue(qualityOfService);
+ }
+ }
+
+ /**
+ * Sets (as xml) the "qualityOfService" element
+ */
+ public void xsetQualityOfService(org.apache.xmlbeans.XmlString qualityOfService)
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ org.apache.xmlbeans.XmlString target = null;
+ target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(QUALITYOFSERVICE$92, 0);
+ if (target == null)
+ {
+ target = (org.apache.xmlbeans.XmlString)get_store().add_element_user(QUALITYOFSERVICE$92);
+ }
+ target.set(qualityOfService);
+ }
+ }
+
+ /**
+ * Unsets the "qualityOfService" element
+ */
+ public void unsetQualityOfService()
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ get_store().remove_element(QUALITYOFSERVICE$92, 0);
+ }
+ }
+
+ /**
+ * Gets the "reservation" element
+ */
+ public java.lang.String getReservation()
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ org.apache.xmlbeans.SimpleValue target = null;
+ target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(RESERVATION$94, 0);
+ if (target == null)
+ {
+ return null;
+ }
+ return target.getStringValue();
+ }
+ }
+
+ /**
+ * Gets (as xml) the "reservation" element
+ */
+ public org.apache.xmlbeans.XmlString xgetReservation()
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ org.apache.xmlbeans.XmlString target = null;
+ target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(RESERVATION$94, 0);
+ return target;
+ }
+ }
+
+ /**
+ * True if has "reservation" element
+ */
+ public boolean isSetReservation()
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ return get_store().count_elements(RESERVATION$94) != 0;
+ }
+ }
+
+ /**
+ * Sets the "reservation" element
+ */
+ public void setReservation(java.lang.String reservation)
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ org.apache.xmlbeans.SimpleValue target = null;
+ target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(RESERVATION$94, 0);
+ if (target == null)
+ {
+ target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(RESERVATION$94);
+ }
+ target.setStringValue(reservation);
+ }
+ }
+
+ /**
+ * Sets (as xml) the "reservation" element
+ */
+ public void xsetReservation(org.apache.xmlbeans.XmlString reservation)
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ org.apache.xmlbeans.XmlString target = null;
+ target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(RESERVATION$94, 0);
+ if (target == null)
+ {
+ target = (org.apache.xmlbeans.XmlString)get_store().add_element_user(RESERVATION$94);
+ }
+ target.set(reservation);
+ }
+ }
+
+ /**
+ * Unsets the "reservation" element
+ */
+ public void unsetReservation()
+ {
+ synchronized (monitor())
+ {
+ check_orphaned();
+ get_store().remove_element(RESERVATION$94, 0);
+ }
+ }
}
diff --git a/modules/gfac/gfac-core/src/main/resources/PBSJobDescriptor.xsd b/modules/gfac/gfac-core/src/main/resources/PBSJobDescriptor.xsd
index 966dafb..e9e6882 100644
--- a/modules/gfac/gfac-core/src/main/resources/PBSJobDescriptor.xsd
+++ b/modules/gfac/gfac-core/src/main/resources/PBSJobDescriptor.xsd
@@ -60,6 +60,8 @@
<element name="callBackIp" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="callBackPort" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<element name="chassisName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <element name="qualityOfService" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <element name="reservation" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
diff --git a/modules/gfac/gfac-impl/src/main/resources/SLURMTemplate.xslt b/modules/gfac/gfac-impl/src/main/resources/SLURMTemplate.xslt
index 4a62722..c82c13c 100644
--- a/modules/gfac/gfac-impl/src/main/resources/SLURMTemplate.xslt
+++ b/modules/gfac/gfac-impl/src/main/resources/SLURMTemplate.xslt
@@ -63,6 +63,16 @@
#SBATCH -e <xsl:value-of select="ns:standardErrorFile"/>
</xsl:when>
</xsl:choose>
+ <xsl:choose>
+ <xsl:when test="ns:qualityOfService">
+#SBATCH --qos=<xsl:value-of select="ns:qualityOfService"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="ns:reservation">
+#SBATCH --reservation=<xsl:value-of select="ns:reservation"/>
+ </xsl:when>
+ </xsl:choose>
<xsl:for-each select="ns:preJobCommands/ns:command">
<xsl:text>
</xsl:text>
<xsl:value-of select="."/><xsl:text> </xsl:text>
@@ -75,4 +85,4 @@
</xsl:for-each>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
diff --git a/thrift-interface-descriptions/data-models/resource-catalog-models/gateway_resource_profile_model.thrift b/thrift-interface-descriptions/data-models/resource-catalog-models/gateway_resource_profile_model.thrift
index 1df7df5..d1b258c 100644
--- a/thrift-interface-descriptions/data-models/resource-catalog-models/gateway_resource_profile_model.thrift
+++ b/thrift-interface-descriptions/data-models/resource-catalog-models/gateway_resource_profile_model.thrift
@@ -71,7 +71,10 @@
8: optional string allocationProjectNumber,
9: optional string resourceSpecificCredentialStoreToken,
10: optional string usageReportingGatewayId,
- 11: optional string allocations
+ 11: optional string qualityOfService,
+ 12: optional string reservation,
+ 13: optional i64 reservationStartTime,
+ 14: optional i64 reservationEndTime
}
struct StoragePreference {