Class: UserComputeResourcePreference

Inherits:
Object
  • Object
show all
Includes:
Thrift::Struct, Thrift::Struct_Union
Defined in:
lib/user_resource_profile_model_types.rb

Overview

User specific preferences for a Computer Resource

computeResourceId:

Corelate the preference to a compute resource.

loginUserName:

If turned true, Airavata will override the preferences of better alternatives exist.

preferredBatchQueue:

Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.

scratchLocation:

Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.

allocationProjectNumber:

Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
  allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
  account to be used has to be added to the allocation.

resourceSpecificCredentialStoreToken:

Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
 default credential store.

validated:

If true the the configuration has been validated in the sense that the username and credential can be used to
login to the remote host and the scratchLocation is a valid location that the user has permission to write to.
Should be treated as read-only and only mutated by Airavata middleware.

Constant Summary collapse

COMPUTERESOURCEID =
1
LOGINUSERNAME =
2
PREFERREDBATCHQUEUE =
3
SCRATCHLOCATION =
4
ALLOCATIONPROJECTNUMBER =
5
RESOURCESPECIFICCREDENTIALSTORETOKEN =
6
QUALITYOFSERVICE =
7
RESERVATION =
8
RESERVATIONSTARTTIME =
9
RESERVATIONENDTIME =
10
VALIDATED =
11
FIELDS =
{
  COMPUTERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'computeResourceId'},
  LOGINUSERNAME => {:type => ::Thrift::Types::STRING, :name => 'loginUserName', :optional => true},
  PREFERREDBATCHQUEUE => {:type => ::Thrift::Types::STRING, :name => 'preferredBatchQueue', :optional => true},
  SCRATCHLOCATION => {:type => ::Thrift::Types::STRING, :name => 'scratchLocation', :optional => true},
  ALLOCATIONPROJECTNUMBER => {:type => ::Thrift::Types::STRING, :name => 'allocationProjectNumber', :optional => true},
  RESOURCESPECIFICCREDENTIALSTORETOKEN => {:type => ::Thrift::Types::STRING, :name => 'resourceSpecificCredentialStoreToken', :optional => true},
  QUALITYOFSERVICE => {:type => ::Thrift::Types::STRING, :name => 'qualityOfService', :optional => true},
  RESERVATION => {:type => ::Thrift::Types::STRING, :name => 'reservation', :optional => true},
  RESERVATIONSTARTTIME => {:type => ::Thrift::Types::I64, :name => 'reservationStartTime', :optional => true},
  RESERVATIONENDTIME => {:type => ::Thrift::Types::I64, :name => 'reservationEndTime', :optional => true},
  VALIDATED => {:type => ::Thrift::Types::BOOL, :name => 'validated', :default => false, :optional => true}
}

Instance Method Summary collapse

Instance Method Details

#struct_fieldsObject



71
# File 'lib/user_resource_profile_model_types.rb', line 71

def struct_fields; FIELDS; end

#validateObject

Raises:

  • (::Thrift::ProtocolException)


73
74
75
# File 'lib/user_resource_profile_model_types.rb', line 73

def validate
  raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field computeResourceId is unset!') unless @computeResourceId
end