airavata 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
|