nomade 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: '01428dbe6cc66511139a3e23eb6b7cbe73e13a2f'
4
- data.tar.gz: 0dc34d653cfc6eea29047dd74d190cae23926905
2
+ SHA256:
3
+ metadata.gz: 768219b7b7d377ec2de09fe3230cb34637841bd53aec49ef68a7ad01a97b57bf
4
+ data.tar.gz: 13cc5e6ffd82d49247e65092ac8270beae7e942374f87cc37de39240f126e0c7
5
5
  SHA512:
6
- metadata.gz: 1a893f7d20cf72b23b8f6026e650e698dd7e0c44890fc07564c152a100d3a5d812b569a514706820583f22fdb93f1e5cda1544e4cf2d31b3386755d554f9a3c5
7
- data.tar.gz: 44c819b4f3bbffb8312f3daba2c55f7cd63840063cabf94e7fe71a4e92b23e17476574975c87ddd73e6a2cd8c59e629d0e8e11c1460a069c2063a57e970dc557
6
+ metadata.gz: 326a7ea66c3182410714d671305f97cb9fcb2a8fc3b63545c5a814508cdfd559316d2d76b11e9e80247fb86821f6f5924b9454762e7d40000487e3daf154e23f
7
+ data.tar.gz: 5f72400e42707128c066a188d90ced7791fbe104af2ef00062e89d62f253d27dd5287500a8e9ee41daf6c44febfd220644c5d1fe445f74eb013c5a4f5fb1f4c1
@@ -12,6 +12,9 @@ module Nomade
12
12
 
13
13
  @timeout = opts.fetch(:timeout, 60 * 3)
14
14
 
15
+ @linger = opts.fetch(:linger, 8..28)
16
+ raise GeneralError.new("Linger needs to be a range, supplied with: #{@linger.class}") unless @linger.class == Range
17
+
15
18
  @hooks = {
16
19
  Nomade::Hooks::DEPLOY_RUNNING => [],
17
20
  Nomade::Hooks::DEPLOY_FINISHED => [],
@@ -21,20 +24,18 @@ module Nomade
21
24
  Nomade::Hooks::DISPATCH_FINISHED => [],
22
25
  Nomade::Hooks::DISPATCH_FAILED => [],
23
26
  }
24
- add_hook(Nomade::Hooks::DEPLOY_FAILED, lambda {|hook_type, nomad_job, messages|
27
+ add_hook(Nomade::Hooks::DEPLOY_FAILED, lambda {|_hook_type, _nomad_job, messages|
25
28
  @logger.error "Failing deploy:"
26
29
  messages.each do |message|
27
30
  @logger.error "- #{message}"
28
31
  end
29
32
  })
30
- add_hook(Nomade::Hooks::DISPATCH_FAILED, lambda {|hook_type, nomad_job, messages|
33
+ add_hook(Nomade::Hooks::DISPATCH_FAILED, lambda {|_hook_type, _nomad_job, messages|
31
34
  @logger.error "Failing dispatch:"
32
35
  messages.each do |message|
33
36
  @logger.error "- #{message}"
34
37
  end
35
38
  })
36
-
37
- self
38
39
  end
39
40
 
40
41
  def init_job(template_file, image_full_name, template_variables = {})
@@ -155,6 +156,8 @@ module Nomade
155
156
  end
156
157
 
157
158
  def stop!(purge = false)
159
+ check_for_job_init
160
+
158
161
  @http.stop_job(@nomad_job, purge)
159
162
  end
160
163
 
@@ -183,7 +186,7 @@ module Nomade
183
186
  @logger.info "Checking cluster for connectivity and capacity.."
184
187
  plan_data = @http.plan_job(@nomad_job)
185
188
 
186
- sum_of_changes = plan_data["Annotations"]["DesiredTGUpdates"].map { |group_name, task_group_updates|
189
+ sum_of_changes = plan_data["Annotations"]["DesiredTGUpdates"].map { |_group_name, task_group_updates|
187
190
  task_group_updates["Stop"] +
188
191
  task_group_updates["Place"] +
189
192
  task_group_updates["Migrate"] +
@@ -356,7 +359,7 @@ module Nomade
356
359
  end
357
360
 
358
361
  @logger.info "Checking cluster for connectivity and capacity.."
359
- plan_data = @http.plan_job(@nomad_job)
362
+ _plan_data = @http.plan_job(@nomad_job)
360
363
 
361
364
  dispatch_job = @http.dispatch_job(@nomad_job, payload_data: payload_data, payload_metadata: payload_metadata)
362
365
  @evaluation_id = dispatch_job["EvalID"]
@@ -398,7 +401,6 @@ module Nomade
398
401
 
399
402
  announced_completed = []
400
403
  promoted = false
401
- failed = false
402
404
  succesful_deployment = nil
403
405
  while(succesful_deployment == nil) do
404
406
  json = @http.deployment_request(@deployment_id)
@@ -408,9 +410,9 @@ module Nomade
408
410
 
409
411
  desired_canaries = task_data["DesiredCanaries"]
410
412
  desired_total = task_data["DesiredTotal"]
411
- placed_allocations = task_data["PlacedAllocs"]
413
+ _placed_allocations = task_data["PlacedAllocs"]
412
414
  healthy_allocations = task_data["HealthyAllocs"]
413
- unhealthy_allocations = task_data["UnhealthyAllocs"]
415
+ _unhealthy_allocations = task_data["UnhealthyAllocs"]
414
416
 
415
417
  if manual_work_required
416
418
  @logger.info "#{json["ID"]} #{task_name}: #{healthy_allocations}/#{desired_canaries}/#{desired_total} (Healthy/WantedCanaries/Total)"
@@ -435,7 +437,7 @@ module Nomade
435
437
 
436
438
  if succesful_deployment == nil && json["TaskGroups"].values.all?{|tg| tg["HealthyAllocs"] >= tg["DesiredCanaries"]}
437
439
  if !promoted
438
- random_linger = rand(8..28)
440
+ random_linger = rand(@linger)
439
441
  @logger.info "Lingering around for #{random_linger} seconds before deployment.."
440
442
  sleep(random_linger)
441
443
 
@@ -504,7 +506,7 @@ module Nomade
504
506
 
505
507
  tasks = get_tasks(allocations)
506
508
  upcoming_tasks = get_upcoming_tasks(tasks)
507
- succesful_tasks = get_succesful_tasks(tasks)
509
+ _succesful_tasks = get_succesful_tasks(tasks)
508
510
  failed_tasks = get_failed_tasks(tasks)
509
511
 
510
512
  if upcoming_tasks.size == 0
data/lib/nomade/http.rb CHANGED
@@ -90,7 +90,7 @@ module Nomade
90
90
  "DeploymentID" => deployment_id,
91
91
  "All" => true,
92
92
  }.to_json
93
- res_body = _request(:post, "/v1/deployment/promote/#{deployment_id}", body: req_body)
93
+ _request(:post, "/v1/deployment/promote/#{deployment_id}", body: req_body)
94
94
 
95
95
  return true
96
96
  rescue StandardError => e
@@ -99,7 +99,7 @@ module Nomade
99
99
  end
100
100
 
101
101
  def fail_deployment(deployment_id)
102
- res_body = _request(:post, "/v1/deployment/fail/#{deployment_id}")
102
+ _request(:post, "/v1/deployment/fail/#{deployment_id}")
103
103
  return true
104
104
  rescue StandardError => e
105
105
  Nomade.logger.fatal "HTTP Request failed (#{e.message})"
@@ -125,7 +125,7 @@ module Nomade
125
125
  end
126
126
 
127
127
  true
128
- rescue Nomade::FailedTaskGroupPlan => e
128
+ rescue Nomade::FailedTaskGroupPlan
129
129
  raise
130
130
  rescue StandardError => e
131
131
  Nomade.logger.fatal "HTTP Request failed (#{e.message})"
@@ -162,7 +162,7 @@ module Nomade
162
162
  req_body = JSON.generate({
163
163
  "Payload": payload_data,
164
164
  "Meta": payload_metadata,
165
- }.delete_if { |k, v| v.nil? })
165
+ }.delete_if { |_k, v| v.nil? })
166
166
 
167
167
  res_body = _request(:post, "/v1/job/#{nomad_job.job_name}/dispatch", body: req_body)
168
168
  JSON.parse(res_body)
@@ -197,6 +197,7 @@ module Nomade
197
197
  else
198
198
  raise "#{request_type} not supported"
199
199
  end
200
+
200
201
  req.add_field "Content-Type", "application/json"
201
202
  req.body = body if body
202
203
 
@@ -209,7 +210,7 @@ module Nomade
209
210
  sleep 1
210
211
  retry
211
212
  else
212
- raise HttpConnectionError.new("#{e.class.to_s} - #{e.message}")
213
+ raise HttpConnectionError.new("#{e.class} - #{e.message}")
213
214
  end
214
215
  end
215
216
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nomade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kasper Grubbe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-06 00:00:00.000000000 Z
11
+ date: 2020-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yell
@@ -114,8 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  - !ruby/object:Gem::Version
115
115
  version: '0'
116
116
  requirements: []
117
- rubyforge_project:
118
- rubygems_version: 2.6.14.4
117
+ rubygems_version: 3.1.2
119
118
  signing_key:
120
119
  specification_version: 4
121
120
  summary: Gem that deploys nomad jobs