iron_titan 0.3.1 → 0.3.7

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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -7
  3. data/lib/iron_titan/api/groups_api.rb +61 -1
  4. data/lib/iron_titan/api/jobs_api.rb +54 -50
  5. data/lib/iron_titan/api/runner_api.rb +233 -0
  6. data/lib/iron_titan/api_client.rb +1 -1
  7. data/lib/iron_titan/api_error.rb +1 -1
  8. data/lib/iron_titan/models/complete.rb +184 -0
  9. data/lib/iron_titan/models/error.rb +1 -1
  10. data/lib/iron_titan/models/error_body.rb +1 -1
  11. data/lib/iron_titan/models/group.rb +1 -1
  12. data/lib/iron_titan/models/group_wrapper.rb +1 -1
  13. data/lib/iron_titan/models/groups_wrapper.rb +1 -1
  14. data/lib/iron_titan/models/id_status.rb +1 -1
  15. data/lib/iron_titan/models/job.rb +31 -12
  16. data/lib/iron_titan/models/job_wrapper.rb +1 -1
  17. data/lib/iron_titan/models/jobs_wrapper.rb +1 -1
  18. data/lib/iron_titan/models/new_job.rb +2 -4
  19. data/lib/iron_titan/models/new_jobs_wrapper.rb +1 -1
  20. data/lib/iron_titan/models/reason.rb +30 -18
  21. data/lib/iron_titan/models/start.rb +162 -0
  22. data/lib/iron_titan/version.rb +2 -2
  23. data/lib/iron_titan.rb +4 -2
  24. data/spec/api/groups_api_spec.rb +17 -1
  25. data/spec/api/jobs_api_spec.rb +14 -13
  26. data/spec/api/runner_api_spec.rb +89 -0
  27. data/spec/models/complete_spec.rb +66 -0
  28. data/spec/models/error_body_spec.rb +1 -1
  29. data/spec/models/{Error_spec.rb → error_spec.rb} +1 -1
  30. data/spec/models/group_spec.rb +1 -1
  31. data/spec/models/group_wrapper_spec.rb +1 -1
  32. data/spec/models/groups_wrapper_spec.rb +1 -1
  33. data/spec/models/id_status_spec.rb +1 -1
  34. data/spec/models/{Job_spec.rb → job_spec.rb} +12 -2
  35. data/spec/models/job_wrapper_spec.rb +1 -1
  36. data/spec/models/jobs_wrapper_spec.rb +1 -1
  37. data/spec/models/new_job_spec.rb +1 -1
  38. data/spec/models/new_jobs_wrapper_spec.rb +1 -1
  39. data/spec/models/reason_spec.rb +1 -1
  40. data/spec/models/start_spec.rb +46 -0
  41. metadata +15 -6
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -0,0 +1,184 @@
1
+ =begin
2
+ Titan API
3
+
4
+ The ultimate, language agnostic, container based job processing framework.
5
+
6
+ OpenAPI spec version: 0.3.7
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module IronTitan
16
+ class Complete
17
+ # Time when job was completed. Always in UTC.
18
+ attr_accessor :completed_at
19
+
20
+ # Machine readable reason failure, if status=error. Only used by the /error endpoint.
21
+ attr_accessor :reason
22
+
23
+ # Error message, if status=error. Only used by the /error endpoint.
24
+ attr_accessor :error
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+
30
+ :'completed_at' => :'completed_at',
31
+
32
+ :'reason' => :'reason',
33
+
34
+ :'error' => :'error'
35
+
36
+ }
37
+ end
38
+
39
+ # Attribute type mapping.
40
+ def self.swagger_types
41
+ {
42
+ :'completed_at' => :'DateTime',
43
+ :'reason' => :'String',
44
+ :'error' => :'String'
45
+
46
+ }
47
+ end
48
+
49
+ def initialize(attributes = {})
50
+ return unless attributes.is_a?(Hash)
51
+
52
+ # convert string to symbol for hash key
53
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
54
+
55
+
56
+ if attributes[:'completed_at']
57
+ self.completed_at = attributes[:'completed_at']
58
+ end
59
+
60
+ if attributes[:'reason']
61
+ self.reason = attributes[:'reason']
62
+ end
63
+
64
+ if attributes[:'error']
65
+ self.error = attributes[:'error']
66
+ end
67
+
68
+ end
69
+
70
+ # Check equality by comparing each attribute.
71
+ def ==(o)
72
+ return true if self.equal?(o)
73
+ self.class == o.class &&
74
+ completed_at == o.completed_at &&
75
+ reason == o.reason &&
76
+ error == o.error
77
+ end
78
+
79
+ # @see the `==` method
80
+ def eql?(o)
81
+ self == o
82
+ end
83
+
84
+ # Calculate hash code according to all attributes.
85
+ def hash
86
+ [completed_at, reason, error].hash
87
+ end
88
+
89
+ # build the object from hash
90
+ def build_from_hash(attributes)
91
+ return nil unless attributes.is_a?(Hash)
92
+ self.class.swagger_types.each_pair do |key, type|
93
+ if type =~ /^Array<(.*)>/i
94
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
95
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
96
+ else
97
+ #TODO show warning in debug mode
98
+ end
99
+ elsif !attributes[self.class.attribute_map[key]].nil?
100
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
101
+ else
102
+ # data not found in attributes(hash), not an issue as the data can be optional
103
+ end
104
+ end
105
+
106
+ self
107
+ end
108
+
109
+ def _deserialize(type, value)
110
+ case type.to_sym
111
+ when :DateTime
112
+ DateTime.parse(value)
113
+ when :Date
114
+ Date.parse(value)
115
+ when :String
116
+ value.to_s
117
+ when :Integer
118
+ value.to_i
119
+ when :Float
120
+ value.to_f
121
+ when :BOOLEAN
122
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
123
+ true
124
+ else
125
+ false
126
+ end
127
+ when :Object
128
+ # generic object (usually a Hash), return directly
129
+ value
130
+ when /\AArray<(?<inner_type>.+)>\z/
131
+ inner_type = Regexp.last_match[:inner_type]
132
+ value.map { |v| _deserialize(inner_type, v) }
133
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
134
+ k_type = Regexp.last_match[:k_type]
135
+ v_type = Regexp.last_match[:v_type]
136
+ {}.tap do |hash|
137
+ value.each do |k, v|
138
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
139
+ end
140
+ end
141
+ else # model
142
+ _model = IronTitan.const_get(type).new
143
+ _model.build_from_hash(value)
144
+ end
145
+ end
146
+
147
+ def to_s
148
+ to_hash.to_s
149
+ end
150
+
151
+ # to_body is an alias to to_body (backward compatibility))
152
+ def to_body
153
+ to_hash
154
+ end
155
+
156
+ # return the object in the form of hash
157
+ def to_hash
158
+ hash = {}
159
+ self.class.attribute_map.each_pair do |attr, param|
160
+ value = self.send(attr)
161
+ next if value.nil?
162
+ hash[param] = _to_hash(value)
163
+ end
164
+ hash
165
+ end
166
+
167
+ # Method to output non-array value in the form of hash
168
+ # For object, use to_hash. Otherwise, just return the value
169
+ def _to_hash(value)
170
+ if value.is_a?(Array)
171
+ value.compact.map{ |v| _to_hash(v) }
172
+ elsif value.is_a?(Hash)
173
+ {}.tap do |hash|
174
+ value.each { |k, v| hash[k] = _to_hash(v) }
175
+ end
176
+ elsif value.respond_to? :to_hash
177
+ value.to_hash
178
+ else
179
+ value
180
+ end
181
+ end
182
+
183
+ end
184
+ end
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -44,6 +44,10 @@ module IronTitan
44
44
  # Group this job belongs to.
45
45
  attr_accessor :group_name
46
46
 
47
+ # The error message, if status is 'error'. This is errors due to things outside the job itself. Errors from user code will be found in the log.
48
+ attr_accessor :error
49
+
50
+ # Machine usable reason for job being in this state.\nValid values for error status are `timeout | killed | bad_exit`.\nValid values for cancelled status are `client_request`.\nFor everything else, this is undefined.\n
47
51
  attr_accessor :reason
48
52
 
49
53
  # Time when job was submitted. Always in UTC.
@@ -59,7 +63,7 @@ module IronTitan
59
63
  attr_accessor :retry_of
60
64
 
61
65
  # If this field is set, then this job was retried by the job referenced in this field.
62
- attr_accessor :retry_id
66
+ attr_accessor :retry_at
63
67
 
64
68
  # Attribute mapping from ruby-style variable name to JSON key.
65
69
  def self.attribute_map
@@ -85,6 +89,8 @@ module IronTitan
85
89
 
86
90
  :'group_name' => :'group_name',
87
91
 
92
+ :'error' => :'error',
93
+
88
94
  :'reason' => :'reason',
89
95
 
90
96
  :'created_at' => :'created_at',
@@ -95,7 +101,7 @@ module IronTitan
95
101
 
96
102
  :'retry_of' => :'retry_of',
97
103
 
98
- :'retry_id' => :'retry_id'
104
+ :'retry_at' => :'retry_at'
99
105
 
100
106
  }
101
107
  end
@@ -113,12 +119,13 @@ module IronTitan
113
119
  :'id' => :'String',
114
120
  :'status' => :'String',
115
121
  :'group_name' => :'String',
116
- :'reason' => :'Reason',
122
+ :'error' => :'String',
123
+ :'reason' => :'String',
117
124
  :'created_at' => :'DateTime',
118
125
  :'started_at' => :'DateTime',
119
126
  :'completed_at' => :'DateTime',
120
127
  :'retry_of' => :'String',
121
- :'retry_id' => :'String'
128
+ :'retry_at' => :'String'
122
129
 
123
130
  }
124
131
  end
@@ -152,14 +159,12 @@ module IronTitan
152
159
 
153
160
  if attributes[:'priority']
154
161
  self.priority = attributes[:'priority']
155
- else
156
- self.priority = 0
157
162
  end
158
163
 
159
164
  if attributes[:'max_retries']
160
165
  self.max_retries = attributes[:'max_retries']
161
166
  else
162
- self.max_retries = 3
167
+ self.max_retries = 0
163
168
  end
164
169
 
165
170
  if attributes[:'retries_delay']
@@ -180,6 +185,10 @@ module IronTitan
180
185
  self.group_name = attributes[:'group_name']
181
186
  end
182
187
 
188
+ if attributes[:'error']
189
+ self.error = attributes[:'error']
190
+ end
191
+
183
192
  if attributes[:'reason']
184
193
  self.reason = attributes[:'reason']
185
194
  end
@@ -200,8 +209,8 @@ module IronTitan
200
209
  self.retry_of = attributes[:'retry_of']
201
210
  end
202
211
 
203
- if attributes[:'retry_id']
204
- self.retry_id = attributes[:'retry_id']
212
+ if attributes[:'retry_at']
213
+ self.retry_at = attributes[:'retry_at']
205
214
  end
206
215
 
207
216
  end
@@ -215,6 +224,15 @@ module IronTitan
215
224
  @status = status
216
225
  end
217
226
 
227
+ # Custom attribute writer method checking allowed values (enum).
228
+ def reason=(reason)
229
+ allowed_values = ["timeout", "killed", "bad_exit", "client_request"]
230
+ if reason && !allowed_values.include?(reason)
231
+ fail "invalid value for 'reason', must be one of #{allowed_values}"
232
+ end
233
+ @reason = reason
234
+ end
235
+
218
236
  # Check equality by comparing each attribute.
219
237
  def ==(o)
220
238
  return true if self.equal?(o)
@@ -229,12 +247,13 @@ module IronTitan
229
247
  id == o.id &&
230
248
  status == o.status &&
231
249
  group_name == o.group_name &&
250
+ error == o.error &&
232
251
  reason == o.reason &&
233
252
  created_at == o.created_at &&
234
253
  started_at == o.started_at &&
235
254
  completed_at == o.completed_at &&
236
255
  retry_of == o.retry_of &&
237
- retry_id == o.retry_id
256
+ retry_at == o.retry_at
238
257
  end
239
258
 
240
259
  # @see the `==` method
@@ -244,7 +263,7 @@ module IronTitan
244
263
 
245
264
  # Calculate hash code according to all attributes.
246
265
  def hash
247
- [image, payload, delay, timeout, priority, max_retries, retries_delay, id, status, group_name, reason, created_at, started_at, completed_at, retry_of, retry_id].hash
266
+ [image, payload, delay, timeout, priority, max_retries, retries_delay, id, status, group_name, error, reason, created_at, started_at, completed_at, retry_of, retry_at].hash
248
267
  end
249
268
 
250
269
  # build the object from hash
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -99,14 +99,12 @@ module IronTitan
99
99
 
100
100
  if attributes[:'priority']
101
101
  self.priority = attributes[:'priority']
102
- else
103
- self.priority = 0
104
102
  end
105
103
 
106
104
  if attributes[:'max_retries']
107
105
  self.max_retries = attributes[:'max_retries']
108
106
  else
109
- self.max_retries = 3
107
+ self.max_retries = 0
110
108
  end
111
109
 
112
110
  if attributes[:'retries_delay']
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.7
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -3,7 +3,7 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.2
6
+ OpenAPI spec version: 0.3.3
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
@@ -18,62 +18,68 @@ module IronTitan
18
18
  # Attribute mapping from ruby-style variable name to JSON key.
19
19
  def self.attribute_map
20
20
  {
21
-
22
21
  }
23
22
  end
24
23
 
25
24
  # Attribute type mapping.
26
25
  def self.swagger_types
27
26
  {
28
-
29
27
  }
30
28
  end
31
29
 
30
+ # Initializes the object
31
+ # @param [Hash] attributes Model attributes in the form of hash
32
32
  def initialize(attributes = {})
33
33
  return unless attributes.is_a?(Hash)
34
34
 
35
35
  # convert string to symbol for hash key
36
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
36
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
37
37
 
38
-
39
38
  end
40
39
 
41
- # Check equality by comparing each attribute.
40
+ # Checks equality by comparing each attribute.
41
+ # @param [Object] Object to be compared
42
42
  def ==(o)
43
43
  return true if self.equal?(o)
44
44
  self.class == o.class
45
45
  end
46
46
 
47
47
  # @see the `==` method
48
+ # @param [Object] Object to be compared
48
49
  def eql?(o)
49
50
  self == o
50
51
  end
51
52
 
52
- # Calculate hash code according to all attributes.
53
+ # Calculates hash code according to all attributes.
54
+ # @return [Fixnum] Hash code
53
55
  def hash
54
56
  [].hash
55
57
  end
56
58
 
57
- # build the object from hash
59
+ # Builds the object from hash
60
+ # @param [Hash] attributes Model attributes in the form of hash
61
+ # @return [Object] Returns the model itself
58
62
  def build_from_hash(attributes)
59
63
  return nil unless attributes.is_a?(Hash)
60
64
  self.class.swagger_types.each_pair do |key, type|
61
65
  if type =~ /^Array<(.*)>/i
66
+ # check to ensure the input is an array given that the the attribute
67
+ # is documented as an array but the input is not
62
68
  if attributes[self.class.attribute_map[key]].is_a?(Array)
63
69
  self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
64
- else
65
- #TODO show warning in debug mode
66
70
  end
67
71
  elsif !attributes[self.class.attribute_map[key]].nil?
68
72
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
69
- else
70
- # data not found in attributes(hash), not an issue as the data can be optional
71
- end
73
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
72
74
  end
73
75
 
74
76
  self
75
77
  end
76
78
 
79
+ # Deserializes the data based on type
80
+ # @param string type Data type
81
+ # @param string value Value to be deserialized
82
+ # @return [Object] Deserialized data
77
83
  def _deserialize(type, value)
78
84
  case type.to_sym
79
85
  when :DateTime
@@ -107,21 +113,25 @@ module IronTitan
107
113
  end
108
114
  end
109
115
  else # model
110
- _model = IronTitan.const_get(type).new
111
- _model.build_from_hash(value)
116
+ temp_model = IronTitan.const_get(type).new
117
+ temp_model.build_from_hash(value)
112
118
  end
113
119
  end
114
120
 
121
+ # Returns the string representation of the object
122
+ # @return [String] String presentation of the object
115
123
  def to_s
116
124
  to_hash.to_s
117
125
  end
118
126
 
119
- # to_body is an alias to to_body (backward compatibility))
127
+ # to_body is an alias to to_hash (backward compatibility)
128
+ # @return [Hash] Returns the object in the form of hash
120
129
  def to_body
121
130
  to_hash
122
131
  end
123
132
 
124
- # return the object in the form of hash
133
+ # Returns the object in the form of hash
134
+ # @return [Hash] Returns the object in the form of hash
125
135
  def to_hash
126
136
  hash = {}
127
137
  self.class.attribute_map.each_pair do |attr, param|
@@ -132,8 +142,10 @@ module IronTitan
132
142
  hash
133
143
  end
134
144
 
135
- # Method to output non-array value in the form of hash
145
+ # Outputs non-array value in the form of hash
136
146
  # For object, use to_hash. Otherwise, just return the value
147
+ # @param [Object] value Any valid value
148
+ # @return [Hash] Returns the value in the form of hash
137
149
  def _to_hash(value)
138
150
  if value.is_a?(Array)
139
151
  value.compact.map{ |v| _to_hash(v) }