airavata 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +11 -0
- data/README.md +61 -0
- data/Rakefile +6 -0
- data/airavata.gemspec +26 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/account_provisioning_model_constants.rb +9 -0
- data/lib/account_provisioning_model_types.rb +69 -0
- data/lib/airavata.rb +15774 -0
- data/lib/airavata_api_constants.rb +11 -0
- data/lib/airavata_api_types.rb +34 -0
- data/lib/airavata_commons_constants.rb +11 -0
- data/lib/airavata_commons_types.rb +79 -0
- data/lib/airavata_data_models_constants.rb +9 -0
- data/lib/airavata_data_models_types.rb +28 -0
- data/lib/airavata_errors_constants.rb +9 -0
- data/lib/airavata_errors_types.rb +317 -0
- data/lib/airavata_workflow_model_constants.rb +9 -0
- data/lib/airavata_workflow_model_types.rb +335 -0
- data/lib/application_deployment_model_constants.rb +9 -0
- data/lib/application_deployment_model_types.rb +186 -0
- data/lib/application_interface_model_constants.rb +9 -0
- data/lib/application_interface_model_types.rb +54 -0
- data/lib/application_io_models_constants.rb +9 -0
- data/lib/application_io_models_types.rb +160 -0
- data/lib/base_a_p_i.rb +77 -0
- data/lib/base_api_constants.rb +9 -0
- data/lib/base_api_types.rb +8 -0
- data/lib/compute_resource_model_constants.rb +9 -0
- data/lib/compute_resource_model_types.rb +470 -0
- data/lib/credential_store_data_models_constants.rb +11 -0
- data/lib/credential_store_data_models_types.rb +172 -0
- data/lib/data_movement_models_constants.rb +9 -0
- data/lib/data_movement_models_types.rb +199 -0
- data/lib/db_event_model_constants.rb +9 -0
- data/lib/db_event_model_types.rb +155 -0
- data/lib/experiment_model_constants.rb +9 -0
- data/lib/experiment_model_types.rb +246 -0
- data/lib/gateway_groups_model_constants.rb +9 -0
- data/lib/gateway_groups_model_types.rb +34 -0
- data/lib/gateway_resource_profile_model_constants.rb +9 -0
- data/lib/gateway_resource_profile_model_types.rb +165 -0
- data/lib/group_manager_model_constants.rb +9 -0
- data/lib/group_manager_model_types.rb +58 -0
- data/lib/group_resource_profile_model_constants.rb +9 -0
- data/lib/group_resource_profile_model_types.rb +230 -0
- data/lib/job_model_constants.rb +9 -0
- data/lib/job_model_types.rb +52 -0
- data/lib/messaging_events_constants.rb +9 -0
- data/lib/messaging_events_types.rb +399 -0
- data/lib/parallelism_model_constants.rb +9 -0
- data/lib/parallelism_model_types.rb +19 -0
- data/lib/parser_model_constants.rb +9 -0
- data/lib/parser_model_types.rb +229 -0
- data/lib/process_model_constants.rb +9 -0
- data/lib/process_model_types.rb +113 -0
- data/lib/replica_catalog_models_constants.rb +9 -0
- data/lib/replica_catalog_models_types.rb +116 -0
- data/lib/scheduling_model_constants.rb +9 -0
- data/lib/scheduling_model_types.rb +49 -0
- data/lib/security_model_constants.rb +9 -0
- data/lib/security_model_types.rb +27 -0
- data/lib/status_models_constants.rb +9 -0
- data/lib/status_models_types.rb +212 -0
- data/lib/storage_resource_model_constants.rb +9 -0
- data/lib/storage_resource_model_types.rb +56 -0
- data/lib/task_model_constants.rb +9 -0
- data/lib/task_model_types.rb +197 -0
- data/lib/tenant_profile_model_constants.rb +9 -0
- data/lib/tenant_profile_model_types.rb +108 -0
- data/lib/user_profile_model_constants.rb +11 -0
- data/lib/user_profile_model_types.rb +300 -0
- data/lib/user_resource_profile_model_constants.rb +9 -0
- data/lib/user_resource_profile_model_types.rb +150 -0
- data/lib/workspace_model_constants.rb +9 -0
- data/lib/workspace_model_types.rb +230 -0
- metadata +128 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
#
|
2
|
+
# Autogenerated by Thrift Compiler (0.10.0)
|
3
|
+
#
|
4
|
+
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
5
|
+
#
|
6
|
+
|
7
|
+
require 'thrift'
|
8
|
+
require 'application_io_models_types'
|
9
|
+
require 'airavata_commons_types'
|
10
|
+
|
11
|
+
|
12
|
+
# Application Interface Description
|
13
|
+
#
|
14
|
+
# applicationModules:
|
15
|
+
# Associate all application modules with versions which interface is applicable to.
|
16
|
+
#
|
17
|
+
# applicationInputs:
|
18
|
+
# Inputs to be passed to the application
|
19
|
+
#
|
20
|
+
# applicationOutputs:
|
21
|
+
# Outputs generated from the application
|
22
|
+
#
|
23
|
+
class ApplicationInterfaceDescription
|
24
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
25
|
+
APPLICATIONINTERFACEID = 1
|
26
|
+
APPLICATIONNAME = 2
|
27
|
+
APPLICATIONDESCRIPTION = 3
|
28
|
+
APPLICATIONMODULES = 4
|
29
|
+
APPLICATIONINPUTS = 5
|
30
|
+
APPLICATIONOUTPUTS = 6
|
31
|
+
ARCHIVEWORKINGDIRECTORY = 7
|
32
|
+
HASOPTIONALFILEINPUTS = 8
|
33
|
+
|
34
|
+
FIELDS = {
|
35
|
+
APPLICATIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'applicationInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
|
36
|
+
APPLICATIONNAME => {:type => ::Thrift::Types::STRING, :name => 'applicationName'},
|
37
|
+
APPLICATIONDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'applicationDescription', :optional => true},
|
38
|
+
APPLICATIONMODULES => {:type => ::Thrift::Types::LIST, :name => 'applicationModules', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
|
39
|
+
APPLICATIONINPUTS => {:type => ::Thrift::Types::LIST, :name => 'applicationInputs', :element => {:type => ::Thrift::Types::STRUCT, :class => ::InputDataObjectType}, :optional => true},
|
40
|
+
APPLICATIONOUTPUTS => {:type => ::Thrift::Types::LIST, :name => 'applicationOutputs', :element => {:type => ::Thrift::Types::STRUCT, :class => ::OutputDataObjectType}, :optional => true},
|
41
|
+
ARCHIVEWORKINGDIRECTORY => {:type => ::Thrift::Types::BOOL, :name => 'archiveWorkingDirectory', :default => false, :optional => true},
|
42
|
+
HASOPTIONALFILEINPUTS => {:type => ::Thrift::Types::BOOL, :name => 'hasOptionalFileInputs', :optional => true}
|
43
|
+
}
|
44
|
+
|
45
|
+
def struct_fields; FIELDS; end
|
46
|
+
|
47
|
+
def validate
|
48
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field applicationInterfaceId is unset!') unless @applicationInterfaceId
|
49
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field applicationName is unset!') unless @applicationName
|
50
|
+
end
|
51
|
+
|
52
|
+
::Thrift::Struct.generate_accessors self
|
53
|
+
end
|
54
|
+
|
@@ -0,0 +1,160 @@
|
|
1
|
+
#
|
2
|
+
# Autogenerated by Thrift Compiler (0.10.0)
|
3
|
+
#
|
4
|
+
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
5
|
+
#
|
6
|
+
|
7
|
+
require 'thrift'
|
8
|
+
require 'compute_resource_model_types'
|
9
|
+
|
10
|
+
|
11
|
+
module DataType
|
12
|
+
STRING = 0
|
13
|
+
INTEGER = 1
|
14
|
+
FLOAT = 2
|
15
|
+
URI = 3
|
16
|
+
URI_COLLECTION = 4
|
17
|
+
STDOUT = 5
|
18
|
+
STDERR = 6
|
19
|
+
VALUE_MAP = {0 => "STRING", 1 => "INTEGER", 2 => "FLOAT", 3 => "URI", 4 => "URI_COLLECTION", 5 => "STDOUT", 6 => "STDERR"}
|
20
|
+
VALID_VALUES = Set.new([STRING, INTEGER, FLOAT, URI, URI_COLLECTION, STDOUT, STDERR]).freeze
|
21
|
+
end
|
22
|
+
|
23
|
+
# Application Inputs. The paramters describe how inputs are passed to the application.
|
24
|
+
#
|
25
|
+
# name:
|
26
|
+
# Name of the parameter.
|
27
|
+
#
|
28
|
+
# value:
|
29
|
+
# Value of the parameter. A default value could be set during registration.
|
30
|
+
#
|
31
|
+
# type:
|
32
|
+
# Data type of the parameter
|
33
|
+
#
|
34
|
+
# applicationArguement:
|
35
|
+
# The argument flag sent to the application. Such as -p pressure.
|
36
|
+
#
|
37
|
+
# standardInput:
|
38
|
+
# When this value is set, the parameter is sent as standard input rather than a parameter.
|
39
|
+
# Typically this is passed using redirection operator ">".
|
40
|
+
#
|
41
|
+
# userFriendlyDescription:
|
42
|
+
# Description to be displayed at the user interface.
|
43
|
+
#
|
44
|
+
# metaData:
|
45
|
+
# Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
|
46
|
+
#
|
47
|
+
# overrideFilename:
|
48
|
+
# Rename input file to given value when staging to compute resource.
|
49
|
+
class InputDataObjectType
|
50
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
51
|
+
NAME = 1
|
52
|
+
VALUE = 2
|
53
|
+
TYPE = 3
|
54
|
+
APPLICATIONARGUMENT = 4
|
55
|
+
STANDARDINPUT = 5
|
56
|
+
USERFRIENDLYDESCRIPTION = 6
|
57
|
+
METADATA = 7
|
58
|
+
INPUTORDER = 8
|
59
|
+
ISREQUIRED = 9
|
60
|
+
REQUIREDTOADDEDTOCOMMANDLINE = 10
|
61
|
+
DATASTAGED = 11
|
62
|
+
STORAGERESOURCEID = 12
|
63
|
+
ISREADONLY = 13
|
64
|
+
OVERRIDEFILENAME = 14
|
65
|
+
|
66
|
+
FIELDS = {
|
67
|
+
NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
|
68
|
+
VALUE => {:type => ::Thrift::Types::STRING, :name => 'value', :optional => true},
|
69
|
+
TYPE => {:type => ::Thrift::Types::I32, :name => 'type', :optional => true, :enum_class => ::DataType},
|
70
|
+
APPLICATIONARGUMENT => {:type => ::Thrift::Types::STRING, :name => 'applicationArgument', :optional => true},
|
71
|
+
STANDARDINPUT => {:type => ::Thrift::Types::BOOL, :name => 'standardInput', :optional => true},
|
72
|
+
USERFRIENDLYDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'userFriendlyDescription', :optional => true},
|
73
|
+
METADATA => {:type => ::Thrift::Types::STRING, :name => 'metaData', :optional => true},
|
74
|
+
INPUTORDER => {:type => ::Thrift::Types::I32, :name => 'inputOrder', :optional => true},
|
75
|
+
ISREQUIRED => {:type => ::Thrift::Types::BOOL, :name => 'isRequired', :optional => true},
|
76
|
+
REQUIREDTOADDEDTOCOMMANDLINE => {:type => ::Thrift::Types::BOOL, :name => 'requiredToAddedToCommandLine', :optional => true},
|
77
|
+
DATASTAGED => {:type => ::Thrift::Types::BOOL, :name => 'dataStaged', :optional => true},
|
78
|
+
STORAGERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'storageResourceId', :optional => true},
|
79
|
+
ISREADONLY => {:type => ::Thrift::Types::BOOL, :name => 'isReadOnly', :optional => true},
|
80
|
+
OVERRIDEFILENAME => {:type => ::Thrift::Types::STRING, :name => 'overrideFilename', :optional => true}
|
81
|
+
}
|
82
|
+
|
83
|
+
def struct_fields; FIELDS; end
|
84
|
+
|
85
|
+
def validate
|
86
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field name is unset!') unless @name
|
87
|
+
unless @type.nil? || ::DataType::VALID_VALUES.include?(@type)
|
88
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field type!')
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
::Thrift::Struct.generate_accessors self
|
93
|
+
end
|
94
|
+
|
95
|
+
# Application Outputs. The paramters describe how outputs generated by the application.
|
96
|
+
#
|
97
|
+
# name:
|
98
|
+
# Name of the parameter.
|
99
|
+
#
|
100
|
+
# value:
|
101
|
+
# Value of the parameter.
|
102
|
+
#
|
103
|
+
# type:
|
104
|
+
# Data type of the parameter
|
105
|
+
#
|
106
|
+
# applicationArguement:
|
107
|
+
# The argument flag sent to the application. Such as -p pressure.
|
108
|
+
#
|
109
|
+
# standardInput:
|
110
|
+
# When this value is set, the parameter is sent as standard input rather than a parameter.
|
111
|
+
# Typically this is passed using redirection operator ">".
|
112
|
+
#
|
113
|
+
# userFriendlyDescription:
|
114
|
+
# Description to be displayed at the user interface.
|
115
|
+
#
|
116
|
+
# metaData:
|
117
|
+
# Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
|
118
|
+
#
|
119
|
+
class OutputDataObjectType
|
120
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
121
|
+
NAME = 1
|
122
|
+
VALUE = 2
|
123
|
+
TYPE = 3
|
124
|
+
APPLICATIONARGUMENT = 4
|
125
|
+
ISREQUIRED = 5
|
126
|
+
REQUIREDTOADDEDTOCOMMANDLINE = 6
|
127
|
+
DATAMOVEMENT = 7
|
128
|
+
LOCATION = 8
|
129
|
+
SEARCHQUERY = 9
|
130
|
+
OUTPUTSTREAMING = 10
|
131
|
+
STORAGERESOURCEID = 11
|
132
|
+
METADATA = 12
|
133
|
+
|
134
|
+
FIELDS = {
|
135
|
+
NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
|
136
|
+
VALUE => {:type => ::Thrift::Types::STRING, :name => 'value', :optional => true},
|
137
|
+
TYPE => {:type => ::Thrift::Types::I32, :name => 'type', :optional => true, :enum_class => ::DataType},
|
138
|
+
APPLICATIONARGUMENT => {:type => ::Thrift::Types::STRING, :name => 'applicationArgument', :optional => true},
|
139
|
+
ISREQUIRED => {:type => ::Thrift::Types::BOOL, :name => 'isRequired', :optional => true},
|
140
|
+
REQUIREDTOADDEDTOCOMMANDLINE => {:type => ::Thrift::Types::BOOL, :name => 'requiredToAddedToCommandLine', :optional => true},
|
141
|
+
DATAMOVEMENT => {:type => ::Thrift::Types::BOOL, :name => 'dataMovement', :optional => true},
|
142
|
+
LOCATION => {:type => ::Thrift::Types::STRING, :name => 'location', :optional => true},
|
143
|
+
SEARCHQUERY => {:type => ::Thrift::Types::STRING, :name => 'searchQuery', :optional => true},
|
144
|
+
OUTPUTSTREAMING => {:type => ::Thrift::Types::BOOL, :name => 'outputStreaming', :optional => true},
|
145
|
+
STORAGERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'storageResourceId', :optional => true},
|
146
|
+
METADATA => {:type => ::Thrift::Types::STRING, :name => 'metaData', :optional => true}
|
147
|
+
}
|
148
|
+
|
149
|
+
def struct_fields; FIELDS; end
|
150
|
+
|
151
|
+
def validate
|
152
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field name is unset!') unless @name
|
153
|
+
unless @type.nil? || ::DataType::VALID_VALUES.include?(@type)
|
154
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field type!')
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
::Thrift::Struct.generate_accessors self
|
159
|
+
end
|
160
|
+
|
data/lib/base_a_p_i.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
#
|
2
|
+
# Autogenerated by Thrift Compiler (0.10.0)
|
3
|
+
#
|
4
|
+
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
5
|
+
#
|
6
|
+
|
7
|
+
require 'thrift'
|
8
|
+
require 'base_api_types'
|
9
|
+
|
10
|
+
module BaseAPI
|
11
|
+
class Client
|
12
|
+
include ::Thrift::Client
|
13
|
+
|
14
|
+
def getAPIVersion()
|
15
|
+
send_getAPIVersion()
|
16
|
+
return recv_getAPIVersion()
|
17
|
+
end
|
18
|
+
|
19
|
+
def send_getAPIVersion()
|
20
|
+
send_message('getAPIVersion', GetAPIVersion_args)
|
21
|
+
end
|
22
|
+
|
23
|
+
def recv_getAPIVersion()
|
24
|
+
result = receive_message(GetAPIVersion_result)
|
25
|
+
return result.success unless result.success.nil?
|
26
|
+
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getAPIVersion failed: unknown result')
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
class Processor
|
32
|
+
include ::Thrift::Processor
|
33
|
+
|
34
|
+
def process_getAPIVersion(seqid, iprot, oprot)
|
35
|
+
args = read_args(iprot, GetAPIVersion_args)
|
36
|
+
result = GetAPIVersion_result.new()
|
37
|
+
result.success = @handler.getAPIVersion()
|
38
|
+
write_result(result, oprot, 'getAPIVersion', seqid)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
# HELPER FUNCTIONS AND STRUCTURES
|
44
|
+
|
45
|
+
class GetAPIVersion_args
|
46
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
47
|
+
|
48
|
+
FIELDS = {
|
49
|
+
|
50
|
+
}
|
51
|
+
|
52
|
+
def struct_fields; FIELDS; end
|
53
|
+
|
54
|
+
def validate
|
55
|
+
end
|
56
|
+
|
57
|
+
::Thrift::Struct.generate_accessors self
|
58
|
+
end
|
59
|
+
|
60
|
+
class GetAPIVersion_result
|
61
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
62
|
+
SUCCESS = 0
|
63
|
+
|
64
|
+
FIELDS = {
|
65
|
+
SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
|
66
|
+
}
|
67
|
+
|
68
|
+
def struct_fields; FIELDS; end
|
69
|
+
|
70
|
+
def validate
|
71
|
+
end
|
72
|
+
|
73
|
+
::Thrift::Struct.generate_accessors self
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
@@ -0,0 +1,470 @@
|
|
1
|
+
#
|
2
|
+
# Autogenerated by Thrift Compiler (0.10.0)
|
3
|
+
#
|
4
|
+
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
5
|
+
#
|
6
|
+
|
7
|
+
require 'thrift'
|
8
|
+
require 'airavata_commons_types'
|
9
|
+
require 'parallelism_model_types'
|
10
|
+
require 'data_movement_models_types'
|
11
|
+
|
12
|
+
|
13
|
+
module ResourceJobManagerType
|
14
|
+
FORK = 0
|
15
|
+
PBS = 1
|
16
|
+
SLURM = 2
|
17
|
+
LSF = 3
|
18
|
+
UGE = 4
|
19
|
+
CLOUD = 5
|
20
|
+
AIRAVATA_CUSTOM = 6
|
21
|
+
VALUE_MAP = {0 => "FORK", 1 => "PBS", 2 => "SLURM", 3 => "LSF", 4 => "UGE", 5 => "CLOUD", 6 => "AIRAVATA_CUSTOM"}
|
22
|
+
VALID_VALUES = Set.new([FORK, PBS, SLURM, LSF, UGE, CLOUD, AIRAVATA_CUSTOM]).freeze
|
23
|
+
end
|
24
|
+
|
25
|
+
module JobManagerCommand
|
26
|
+
SUBMISSION = 0
|
27
|
+
JOB_MONITORING = 1
|
28
|
+
DELETION = 2
|
29
|
+
CHECK_JOB = 3
|
30
|
+
SHOW_QUEUE = 4
|
31
|
+
SHOW_RESERVATION = 5
|
32
|
+
SHOW_START = 6
|
33
|
+
VALUE_MAP = {0 => "SUBMISSION", 1 => "JOB_MONITORING", 2 => "DELETION", 3 => "CHECK_JOB", 4 => "SHOW_QUEUE", 5 => "SHOW_RESERVATION", 6 => "SHOW_START"}
|
34
|
+
VALID_VALUES = Set.new([SUBMISSION, JOB_MONITORING, DELETION, CHECK_JOB, SHOW_QUEUE, SHOW_RESERVATION, SHOW_START]).freeze
|
35
|
+
end
|
36
|
+
|
37
|
+
module FileSystems
|
38
|
+
HOME = 0
|
39
|
+
WORK = 1
|
40
|
+
LOCALTMP = 2
|
41
|
+
SCRATCH = 3
|
42
|
+
ARCHIVE = 4
|
43
|
+
VALUE_MAP = {0 => "HOME", 1 => "WORK", 2 => "LOCALTMP", 3 => "SCRATCH", 4 => "ARCHIVE"}
|
44
|
+
VALID_VALUES = Set.new([HOME, WORK, LOCALTMP, SCRATCH, ARCHIVE]).freeze
|
45
|
+
end
|
46
|
+
|
47
|
+
module JobSubmissionProtocol
|
48
|
+
LOCAL = 0
|
49
|
+
SSH = 1
|
50
|
+
GLOBUS = 2
|
51
|
+
UNICORE = 3
|
52
|
+
CLOUD = 4
|
53
|
+
SSH_FORK = 5
|
54
|
+
LOCAL_FORK = 6
|
55
|
+
VALUE_MAP = {0 => "LOCAL", 1 => "SSH", 2 => "GLOBUS", 3 => "UNICORE", 4 => "CLOUD", 5 => "SSH_FORK", 6 => "LOCAL_FORK"}
|
56
|
+
VALID_VALUES = Set.new([LOCAL, SSH, GLOBUS, UNICORE, CLOUD, SSH_FORK, LOCAL_FORK]).freeze
|
57
|
+
end
|
58
|
+
|
59
|
+
module MonitorMode
|
60
|
+
POLL_JOB_MANAGER = 0
|
61
|
+
CLOUD_JOB_MONITOR = 1
|
62
|
+
JOB_EMAIL_NOTIFICATION_MONITOR = 2
|
63
|
+
XSEDE_AMQP_SUBSCRIBE = 3
|
64
|
+
FORK = 4
|
65
|
+
LOCAL = 5
|
66
|
+
VALUE_MAP = {0 => "POLL_JOB_MANAGER", 1 => "CLOUD_JOB_MONITOR", 2 => "JOB_EMAIL_NOTIFICATION_MONITOR", 3 => "XSEDE_AMQP_SUBSCRIBE", 4 => "FORK", 5 => "LOCAL"}
|
67
|
+
VALID_VALUES = Set.new([POLL_JOB_MANAGER, CLOUD_JOB_MONITOR, JOB_EMAIL_NOTIFICATION_MONITOR, XSEDE_AMQP_SUBSCRIBE, FORK, LOCAL]).freeze
|
68
|
+
end
|
69
|
+
|
70
|
+
module DMType
|
71
|
+
COMPUTE_RESOURCE = 0
|
72
|
+
STORAGE_RESOURCE = 1
|
73
|
+
VALUE_MAP = {0 => "COMPUTE_RESOURCE", 1 => "STORAGE_RESOURCE"}
|
74
|
+
VALID_VALUES = Set.new([COMPUTE_RESOURCE, STORAGE_RESOURCE]).freeze
|
75
|
+
end
|
76
|
+
|
77
|
+
module ProviderName
|
78
|
+
EC2 = 0
|
79
|
+
AWSEC2 = 1
|
80
|
+
RACKSPACE = 2
|
81
|
+
VALUE_MAP = {0 => "EC2", 1 => "AWSEC2", 2 => "RACKSPACE"}
|
82
|
+
VALID_VALUES = Set.new([EC2, AWSEC2, RACKSPACE]).freeze
|
83
|
+
end
|
84
|
+
|
85
|
+
# Resource Job Manager Information
|
86
|
+
#
|
87
|
+
# resourceJobManagerType:
|
88
|
+
# A typical HPC cluster has a single Job Manager to manage the resources.
|
89
|
+
#
|
90
|
+
# pushMonitoringEndpoint:
|
91
|
+
# If the job manager pushes out state changes to a database or bus, specify the service endpoint.
|
92
|
+
# Ex: Moab Web Service, Moab MongoDB URL, AMQP (GLUE2) Broker
|
93
|
+
#
|
94
|
+
# jobManagerBinPath:
|
95
|
+
# Path to the Job Manager Installation Binary directory.
|
96
|
+
#
|
97
|
+
# jobManagerCommands:
|
98
|
+
# An enumeration of commonly used manager commands.
|
99
|
+
#
|
100
|
+
class ResourceJobManager
|
101
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
102
|
+
RESOURCEJOBMANAGERID = 1
|
103
|
+
RESOURCEJOBMANAGERTYPE = 2
|
104
|
+
PUSHMONITORINGENDPOINT = 3
|
105
|
+
JOBMANAGERBINPATH = 4
|
106
|
+
JOBMANAGERCOMMANDS = 5
|
107
|
+
PARALLELISMPREFIX = 6
|
108
|
+
|
109
|
+
FIELDS = {
|
110
|
+
RESOURCEJOBMANAGERID => {:type => ::Thrift::Types::STRING, :name => 'resourceJobManagerId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
|
111
|
+
RESOURCEJOBMANAGERTYPE => {:type => ::Thrift::Types::I32, :name => 'resourceJobManagerType', :enum_class => ::ResourceJobManagerType},
|
112
|
+
PUSHMONITORINGENDPOINT => {:type => ::Thrift::Types::STRING, :name => 'pushMonitoringEndpoint', :optional => true},
|
113
|
+
JOBMANAGERBINPATH => {:type => ::Thrift::Types::STRING, :name => 'jobManagerBinPath', :optional => true},
|
114
|
+
JOBMANAGERCOMMANDS => {:type => ::Thrift::Types::MAP, :name => 'jobManagerCommands', :key => {:type => ::Thrift::Types::I32, :enum_class => ::JobManagerCommand}, :value => {:type => ::Thrift::Types::STRING}, :optional => true},
|
115
|
+
PARALLELISMPREFIX => {:type => ::Thrift::Types::MAP, :name => 'parallelismPrefix', :key => {:type => ::Thrift::Types::I32, :enum_class => ::ApplicationParallelismType}, :value => {:type => ::Thrift::Types::STRING}, :optional => true}
|
116
|
+
}
|
117
|
+
|
118
|
+
def struct_fields; FIELDS; end
|
119
|
+
|
120
|
+
def validate
|
121
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field resourceJobManagerId is unset!') unless @resourceJobManagerId
|
122
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field resourceJobManagerType is unset!') unless @resourceJobManagerType
|
123
|
+
unless @resourceJobManagerType.nil? || ::ResourceJobManagerType::VALID_VALUES.include?(@resourceJobManagerType)
|
124
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field resourceJobManagerType!')
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
::Thrift::Struct.generate_accessors self
|
129
|
+
end
|
130
|
+
|
131
|
+
# Batch Queue Information on SuperComputers
|
132
|
+
#
|
133
|
+
# maxRunTime:
|
134
|
+
# Maximum allowed run time in hours.
|
135
|
+
class BatchQueue
|
136
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
137
|
+
QUEUENAME = 1
|
138
|
+
QUEUEDESCRIPTION = 2
|
139
|
+
MAXRUNTIME = 3
|
140
|
+
MAXNODES = 4
|
141
|
+
MAXPROCESSORS = 5
|
142
|
+
MAXJOBSINQUEUE = 6
|
143
|
+
MAXMEMORY = 7
|
144
|
+
CPUPERNODE = 8
|
145
|
+
DEFAULTNODECOUNT = 9
|
146
|
+
DEFAULTCPUCOUNT = 10
|
147
|
+
DEFAULTWALLTIME = 11
|
148
|
+
QUEUESPECIFICMACROS = 12
|
149
|
+
ISDEFAULTQUEUE = 13
|
150
|
+
|
151
|
+
FIELDS = {
|
152
|
+
QUEUENAME => {:type => ::Thrift::Types::STRING, :name => 'queueName'},
|
153
|
+
QUEUEDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'queueDescription', :optional => true},
|
154
|
+
MAXRUNTIME => {:type => ::Thrift::Types::I32, :name => 'maxRunTime', :optional => true},
|
155
|
+
MAXNODES => {:type => ::Thrift::Types::I32, :name => 'maxNodes', :optional => true},
|
156
|
+
MAXPROCESSORS => {:type => ::Thrift::Types::I32, :name => 'maxProcessors', :optional => true},
|
157
|
+
MAXJOBSINQUEUE => {:type => ::Thrift::Types::I32, :name => 'maxJobsInQueue', :optional => true},
|
158
|
+
MAXMEMORY => {:type => ::Thrift::Types::I32, :name => 'maxMemory', :optional => true},
|
159
|
+
CPUPERNODE => {:type => ::Thrift::Types::I32, :name => 'cpuPerNode', :optional => true},
|
160
|
+
DEFAULTNODECOUNT => {:type => ::Thrift::Types::I32, :name => 'defaultNodeCount', :optional => true},
|
161
|
+
DEFAULTCPUCOUNT => {:type => ::Thrift::Types::I32, :name => 'defaultCPUCount', :optional => true},
|
162
|
+
DEFAULTWALLTIME => {:type => ::Thrift::Types::I32, :name => 'defaultWalltime', :optional => true},
|
163
|
+
QUEUESPECIFICMACROS => {:type => ::Thrift::Types::STRING, :name => 'queueSpecificMacros', :optional => true},
|
164
|
+
ISDEFAULTQUEUE => {:type => ::Thrift::Types::BOOL, :name => 'isDefaultQueue', :optional => true}
|
165
|
+
}
|
166
|
+
|
167
|
+
def struct_fields; FIELDS; end
|
168
|
+
|
169
|
+
def validate
|
170
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field queueName is unset!') unless @queueName
|
171
|
+
end
|
172
|
+
|
173
|
+
::Thrift::Struct.generate_accessors self
|
174
|
+
end
|
175
|
+
|
176
|
+
# Locally Fork Jobs as OS processes
|
177
|
+
#
|
178
|
+
# alternativeSSHHostName:
|
179
|
+
# If the login to ssh is different than the hostname itself, specify it here
|
180
|
+
#
|
181
|
+
# sshPort:
|
182
|
+
# If a non-default port needs to used, specify it.
|
183
|
+
class LOCALSubmission
|
184
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
185
|
+
JOBSUBMISSIONINTERFACEID = 1
|
186
|
+
RESOURCEJOBMANAGER = 2
|
187
|
+
SECURITYPROTOCOL = 3
|
188
|
+
|
189
|
+
FIELDS = {
|
190
|
+
JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
|
191
|
+
RESOURCEJOBMANAGER => {:type => ::Thrift::Types::STRUCT, :name => 'resourceJobManager', :class => ::ResourceJobManager},
|
192
|
+
SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol}
|
193
|
+
}
|
194
|
+
|
195
|
+
def struct_fields; FIELDS; end
|
196
|
+
|
197
|
+
def validate
|
198
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
|
199
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field resourceJobManager is unset!') unless @resourceJobManager
|
200
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
|
201
|
+
unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
|
202
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
::Thrift::Struct.generate_accessors self
|
207
|
+
end
|
208
|
+
|
209
|
+
# Authenticate using Secured Shell
|
210
|
+
#
|
211
|
+
# alternativeSSHHostName:
|
212
|
+
# If the login to ssh is different than the hostname itself, specify it here
|
213
|
+
#
|
214
|
+
# sshPort:
|
215
|
+
# If a non-default port needs to used, specify it.
|
216
|
+
#
|
217
|
+
# batchQueueEmailSenders:
|
218
|
+
# If a resource always sends the monitoring from a specific address, specify the
|
219
|
+
# full email address. If a resource sends emails from multiple addresses (
|
220
|
+
# example: based on the submitted login node) then use the wildchar * to indicate
|
221
|
+
# the same. Example: *@*.example.com or *@example.com
|
222
|
+
#
|
223
|
+
class SSHJobSubmission
|
224
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
225
|
+
JOBSUBMISSIONINTERFACEID = 1
|
226
|
+
SECURITYPROTOCOL = 2
|
227
|
+
RESOURCEJOBMANAGER = 3
|
228
|
+
ALTERNATIVESSHHOSTNAME = 4
|
229
|
+
SSHPORT = 5
|
230
|
+
MONITORMODE = 6
|
231
|
+
BATCHQUEUEEMAILSENDERS = 7
|
232
|
+
|
233
|
+
FIELDS = {
|
234
|
+
JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
|
235
|
+
SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol},
|
236
|
+
RESOURCEJOBMANAGER => {:type => ::Thrift::Types::STRUCT, :name => 'resourceJobManager', :class => ::ResourceJobManager},
|
237
|
+
ALTERNATIVESSHHOSTNAME => {:type => ::Thrift::Types::STRING, :name => 'alternativeSSHHostName', :optional => true},
|
238
|
+
SSHPORT => {:type => ::Thrift::Types::I32, :name => 'sshPort', :default => 22, :optional => true},
|
239
|
+
MONITORMODE => {:type => ::Thrift::Types::I32, :name => 'monitorMode', :optional => true, :enum_class => ::MonitorMode},
|
240
|
+
BATCHQUEUEEMAILSENDERS => {:type => ::Thrift::Types::LIST, :name => 'batchQueueEmailSenders', :element => {:type => ::Thrift::Types::STRING}, :optional => true}
|
241
|
+
}
|
242
|
+
|
243
|
+
def struct_fields; FIELDS; end
|
244
|
+
|
245
|
+
def validate
|
246
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
|
247
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
|
248
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field resourceJobManager is unset!') unless @resourceJobManager
|
249
|
+
unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
|
250
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
|
251
|
+
end
|
252
|
+
unless @monitorMode.nil? || ::MonitorMode::VALID_VALUES.include?(@monitorMode)
|
253
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field monitorMode!')
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
::Thrift::Struct.generate_accessors self
|
258
|
+
end
|
259
|
+
|
260
|
+
class GlobusJobSubmission
|
261
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
262
|
+
JOBSUBMISSIONINTERFACEID = 1
|
263
|
+
SECURITYPROTOCOL = 2
|
264
|
+
GLOBUSGATEKEEPERENDPOINT = 3
|
265
|
+
|
266
|
+
FIELDS = {
|
267
|
+
JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
|
268
|
+
SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol},
|
269
|
+
GLOBUSGATEKEEPERENDPOINT => {:type => ::Thrift::Types::LIST, :name => 'globusGateKeeperEndPoint', :element => {:type => ::Thrift::Types::STRING}, :optional => true}
|
270
|
+
}
|
271
|
+
|
272
|
+
def struct_fields; FIELDS; end
|
273
|
+
|
274
|
+
def validate
|
275
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
|
276
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
|
277
|
+
unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
|
278
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
|
279
|
+
end
|
280
|
+
end
|
281
|
+
|
282
|
+
::Thrift::Struct.generate_accessors self
|
283
|
+
end
|
284
|
+
|
285
|
+
# Unicore Job Submission
|
286
|
+
#
|
287
|
+
# unicoreEndPointURL:
|
288
|
+
# unicoreGateway End Point. The provider will query this service to fetch required service end points.
|
289
|
+
# authenticationMode
|
290
|
+
# The authenticationMode defines the way certificate is fetched.
|
291
|
+
class UnicoreJobSubmission
|
292
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
293
|
+
JOBSUBMISSIONINTERFACEID = 1
|
294
|
+
SECURITYPROTOCOL = 2
|
295
|
+
UNICOREENDPOINTURL = 3
|
296
|
+
|
297
|
+
FIELDS = {
|
298
|
+
JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
|
299
|
+
SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol},
|
300
|
+
UNICOREENDPOINTURL => {:type => ::Thrift::Types::STRING, :name => 'unicoreEndPointURL'}
|
301
|
+
}
|
302
|
+
|
303
|
+
def struct_fields; FIELDS; end
|
304
|
+
|
305
|
+
def validate
|
306
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
|
307
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
|
308
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field unicoreEndPointURL is unset!') unless @unicoreEndPointURL
|
309
|
+
unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
|
310
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
::Thrift::Struct.generate_accessors self
|
315
|
+
end
|
316
|
+
|
317
|
+
# Cloud Job Submission
|
318
|
+
#
|
319
|
+
#
|
320
|
+
class CloudJobSubmission
|
321
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
322
|
+
JOBSUBMISSIONINTERFACEID = 1
|
323
|
+
SECURITYPROTOCOL = 2
|
324
|
+
NODEID = 3
|
325
|
+
EXECUTABLETYPE = 4
|
326
|
+
PROVIDERNAME = 5
|
327
|
+
USERACCOUNTNAME = 6
|
328
|
+
|
329
|
+
FIELDS = {
|
330
|
+
JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
|
331
|
+
SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol},
|
332
|
+
NODEID => {:type => ::Thrift::Types::STRING, :name => 'nodeId'},
|
333
|
+
EXECUTABLETYPE => {:type => ::Thrift::Types::STRING, :name => 'executableType'},
|
334
|
+
PROVIDERNAME => {:type => ::Thrift::Types::I32, :name => 'providerName', :enum_class => ::ProviderName},
|
335
|
+
USERACCOUNTNAME => {:type => ::Thrift::Types::STRING, :name => 'userAccountName'}
|
336
|
+
}
|
337
|
+
|
338
|
+
def struct_fields; FIELDS; end
|
339
|
+
|
340
|
+
def validate
|
341
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
|
342
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
|
343
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field nodeId is unset!') unless @nodeId
|
344
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field executableType is unset!') unless @executableType
|
345
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field providerName is unset!') unless @providerName
|
346
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field userAccountName is unset!') unless @userAccountName
|
347
|
+
unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
|
348
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
|
349
|
+
end
|
350
|
+
unless @providerName.nil? || ::ProviderName::VALID_VALUES.include?(@providerName)
|
351
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field providerName!')
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
355
|
+
::Thrift::Struct.generate_accessors self
|
356
|
+
end
|
357
|
+
|
358
|
+
# Job Submission Interfaces
|
359
|
+
#
|
360
|
+
# jobSubmissionInterfaceId: The Job Submission Interface has to be previously registered and referenced here.
|
361
|
+
#
|
362
|
+
# priorityOrder:
|
363
|
+
# For resources with multiple interfaces, the priority order should be selected.
|
364
|
+
# Lower the numerical number, higher the priority
|
365
|
+
#
|
366
|
+
class JobSubmissionInterface
|
367
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
368
|
+
JOBSUBMISSIONINTERFACEID = 1
|
369
|
+
JOBSUBMISSIONPROTOCOL = 2
|
370
|
+
PRIORITYORDER = 3
|
371
|
+
|
372
|
+
FIELDS = {
|
373
|
+
JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId'},
|
374
|
+
JOBSUBMISSIONPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'jobSubmissionProtocol', :enum_class => ::JobSubmissionProtocol},
|
375
|
+
PRIORITYORDER => {:type => ::Thrift::Types::I32, :name => 'priorityOrder', :default => 0}
|
376
|
+
}
|
377
|
+
|
378
|
+
def struct_fields; FIELDS; end
|
379
|
+
|
380
|
+
def validate
|
381
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
|
382
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionProtocol is unset!') unless @jobSubmissionProtocol
|
383
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field priorityOrder is unset!') unless @priorityOrder
|
384
|
+
unless @jobSubmissionProtocol.nil? || ::JobSubmissionProtocol::VALID_VALUES.include?(@jobSubmissionProtocol)
|
385
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field jobSubmissionProtocol!')
|
386
|
+
end
|
387
|
+
end
|
388
|
+
|
389
|
+
::Thrift::Struct.generate_accessors self
|
390
|
+
end
|
391
|
+
|
392
|
+
# Computational Resource Description
|
393
|
+
#
|
394
|
+
# computeResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
|
395
|
+
#
|
396
|
+
# hostName:
|
397
|
+
# Fully Qualified Host Name.
|
398
|
+
#
|
399
|
+
# hostAliases:
|
400
|
+
# Aliases if any.
|
401
|
+
#
|
402
|
+
# ipAddress:
|
403
|
+
# IP Addresses of the Resource.
|
404
|
+
#
|
405
|
+
# resourceDescription:
|
406
|
+
# A user friendly description of the resource.
|
407
|
+
#
|
408
|
+
# JobSubmissionProtocols:
|
409
|
+
# A computational resources may have one or more ways of submitting Jobs. This structure
|
410
|
+
# will hold all available mechanisms to interact with the resource.
|
411
|
+
# The key is the priority
|
412
|
+
#
|
413
|
+
# DataMovementProtocol:
|
414
|
+
# Option to specify a prefered data movement mechanism of the available options.
|
415
|
+
#
|
416
|
+
# fileSystems:
|
417
|
+
# Map of file systems type and the path.
|
418
|
+
#
|
419
|
+
class ComputeResourceDescription
|
420
|
+
include ::Thrift::Struct, ::Thrift::Struct_Union
|
421
|
+
COMPUTERESOURCEID = 1
|
422
|
+
HOSTNAME = 2
|
423
|
+
HOSTALIASES = 3
|
424
|
+
IPADDRESSES = 4
|
425
|
+
RESOURCEDESCRIPTION = 5
|
426
|
+
ENABLED = 6
|
427
|
+
BATCHQUEUES = 7
|
428
|
+
FILESYSTEMS = 8
|
429
|
+
JOBSUBMISSIONINTERFACES = 9
|
430
|
+
DATAMOVEMENTINTERFACES = 10
|
431
|
+
MAXMEMORYPERNODE = 11
|
432
|
+
GATEWAYUSAGEREPORTING = 12
|
433
|
+
GATEWAYUSAGEMODULELOADCOMMAND = 13
|
434
|
+
GATEWAYUSAGEEXECUTABLE = 14
|
435
|
+
CPUSPERNODE = 15
|
436
|
+
DEFAULTNODECOUNT = 16
|
437
|
+
DEFAULTCPUCOUNT = 17
|
438
|
+
DEFAULTWALLTIME = 18
|
439
|
+
|
440
|
+
FIELDS = {
|
441
|
+
COMPUTERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'computeResourceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
|
442
|
+
HOSTNAME => {:type => ::Thrift::Types::STRING, :name => 'hostName'},
|
443
|
+
HOSTALIASES => {:type => ::Thrift::Types::LIST, :name => 'hostAliases', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
|
444
|
+
IPADDRESSES => {:type => ::Thrift::Types::LIST, :name => 'ipAddresses', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
|
445
|
+
RESOURCEDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'resourceDescription', :optional => true},
|
446
|
+
ENABLED => {:type => ::Thrift::Types::BOOL, :name => 'enabled', :optional => true},
|
447
|
+
BATCHQUEUES => {:type => ::Thrift::Types::LIST, :name => 'batchQueues', :element => {:type => ::Thrift::Types::STRUCT, :class => ::BatchQueue}, :optional => true},
|
448
|
+
FILESYSTEMS => {:type => ::Thrift::Types::MAP, :name => 'fileSystems', :key => {:type => ::Thrift::Types::I32, :enum_class => ::FileSystems}, :value => {:type => ::Thrift::Types::STRING}, :optional => true},
|
449
|
+
JOBSUBMISSIONINTERFACES => {:type => ::Thrift::Types::LIST, :name => 'jobSubmissionInterfaces', :element => {:type => ::Thrift::Types::STRUCT, :class => ::JobSubmissionInterface}, :optional => true},
|
450
|
+
DATAMOVEMENTINTERFACES => {:type => ::Thrift::Types::LIST, :name => 'dataMovementInterfaces', :element => {:type => ::Thrift::Types::STRUCT, :class => ::DataMovementInterface}, :optional => true},
|
451
|
+
MAXMEMORYPERNODE => {:type => ::Thrift::Types::I32, :name => 'maxMemoryPerNode', :optional => true},
|
452
|
+
GATEWAYUSAGEREPORTING => {:type => ::Thrift::Types::BOOL, :name => 'gatewayUsageReporting', :optional => true},
|
453
|
+
GATEWAYUSAGEMODULELOADCOMMAND => {:type => ::Thrift::Types::STRING, :name => 'gatewayUsageModuleLoadCommand', :optional => true},
|
454
|
+
GATEWAYUSAGEEXECUTABLE => {:type => ::Thrift::Types::STRING, :name => 'gatewayUsageExecutable', :optional => true},
|
455
|
+
CPUSPERNODE => {:type => ::Thrift::Types::I32, :name => 'cpusPerNode', :optional => true},
|
456
|
+
DEFAULTNODECOUNT => {:type => ::Thrift::Types::I32, :name => 'defaultNodeCount', :optional => true},
|
457
|
+
DEFAULTCPUCOUNT => {:type => ::Thrift::Types::I32, :name => 'defaultCPUCount', :optional => true},
|
458
|
+
DEFAULTWALLTIME => {:type => ::Thrift::Types::I32, :name => 'defaultWalltime', :optional => true}
|
459
|
+
}
|
460
|
+
|
461
|
+
def struct_fields; FIELDS; end
|
462
|
+
|
463
|
+
def validate
|
464
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field computeResourceId is unset!') unless @computeResourceId
|
465
|
+
raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field hostName is unset!') unless @hostName
|
466
|
+
end
|
467
|
+
|
468
|
+
::Thrift::Struct.generate_accessors self
|
469
|
+
end
|
470
|
+
|