vmpooler 0.10.3 → 0.11.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1235ece5040bd685dafa1fb0d1d4a63b0002d80e58e2890d83b126d8a9ba51b
4
- data.tar.gz: d9d623741face3692fc412b07737f29d5f0b727821d80e19277aa90c6936f504
3
+ metadata.gz: eb4bf5469c97ce1d8a7a7a68f5241d70ea77f392f389bba5a640de020d9851a8
4
+ data.tar.gz: 089dd8a8a4369275858f40529a3e669b853ae4ff1fdd65009a7da7051388e9ff
5
5
  SHA512:
6
- metadata.gz: 409abfb3eb3e438a9e4d87a4fb95137b776d31a3d0ccad79b052589da56b052fad6df924a8fbf34eec5d2998878b409f149dfa8bd3d5665e490e3744af1f8fee
7
- data.tar.gz: bcc2e4db8092b9b2c31bfb0327ee1394fa92f87d513dcee2488e114203bedd72f6a2cc8ef7dd99675014acc5cf6b72305fc21ac7a614bc57bf0dda9dbecc8835
6
+ metadata.gz: b094cac19b6a36afb1f1f5c43bf7c000116034169ef9a7d43a821ab595eb7feb6f799673b669f1d1acf19bde2f52b9ae96513a5f0bce96021719a0825a2effc0
7
+ data.tar.gz: 0b68695a5916fe1a013470f868f1d2cf6955d0f6ad14efb50530d9fb339fae2a488ec756cb2b76d4d81d19401e4f525e9693545b70f36215d2e14515e5b23343
data/bin/vmpooler CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'vmpooler'
4
5
 
@@ -49,6 +50,4 @@ if ENV['VMPOOLER_DEBUG']
49
50
  end
50
51
  end
51
52
 
52
- torun_threads.each do |th|
53
- th.join
54
- end
53
+ torun_threads.each(&:join)
@@ -1,7 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Vmpooler
2
4
  class API
3
5
  class Dashboard < Sinatra::Base
4
-
5
6
  helpers do
6
7
  include Vmpooler::API::Helpers
7
8
  end
@@ -21,9 +22,11 @@ module Vmpooler
21
22
 
22
23
  if config[:graphs]
23
24
  return false unless config[:graphs]['server']
25
+
24
26
  @graph_server = config[:graphs]['server']
25
27
  elsif config[:graphite]
26
28
  return false unless config[:graphite]['server']
29
+
27
30
  @graph_server = config[:graphite]['server']
28
31
  else
29
32
  false
@@ -36,9 +39,11 @@ module Vmpooler
36
39
 
37
40
  if config[:graphs]
38
41
  return 'vmpooler' unless config[:graphs]['prefix']
42
+
39
43
  @graph_prefix = config[:graphs]['prefix']
40
44
  elsif config[:graphite]
41
45
  return false unless config[:graphite]['prefix']
46
+
42
47
  @graph_prefix = config[:graphite]['prefix']
43
48
  else
44
49
  false
@@ -48,12 +53,14 @@ module Vmpooler
48
53
  # what is the base URL for viewable graphs?
49
54
  def graph_url
50
55
  return false unless graph_server && graph_prefix
56
+
51
57
  @graph_url ||= "http://#{graph_server}/render?target=#{graph_prefix}"
52
58
  end
53
59
 
54
60
  # return a full URL to a viewable graph for a given metrics target (graphite syntax)
55
61
  def graph_link(target = '')
56
62
  return '' unless graph_url
63
+
57
64
  graph_url + target
58
65
  end
59
66
 
@@ -76,7 +83,7 @@ module Vmpooler
76
83
  history ||= {}
77
84
 
78
85
  begin
79
- buffer = open(graph_link('.ready.*&from=-1hour&format=json')).read
86
+ buffer = URI.parse(graph_link('.ready.*&from=-1hour&format=json')).read
80
87
  history = JSON.parse(buffer)
81
88
 
82
89
  history.each do |pool|
@@ -100,7 +107,7 @@ module Vmpooler
100
107
  end
101
108
  end
102
109
  end
103
- rescue
110
+ rescue StandardError
104
111
  end
105
112
  else
106
113
  pools.each do |pool|
@@ -129,7 +136,7 @@ module Vmpooler
129
136
  if params[:history]
130
137
  if graph_url
131
138
  begin
132
- buffer = open(graph_link('.running.*&from=-1hour&format=json')).read
139
+ buffer = URI.parse(graph_link('.running.*&from=-1hour&format=json')).read
133
140
  JSON.parse(buffer).each do |pool|
134
141
  if pool['target'] =~ /.*\.(.*)$/
135
142
  pool['name'] = Regexp.last_match[1]
@@ -147,7 +154,7 @@ module Vmpooler
147
154
  end
148
155
  end
149
156
  end
150
- rescue
157
+ rescue StandardError
151
158
  end
152
159
  end
153
160
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Vmpooler
2
4
 
3
5
  class API
@@ -71,43 +73,44 @@ module Vmpooler
71
73
  )
72
74
 
73
75
  return true if ldap.bind
76
+
74
77
  return false
75
78
  end
76
79
 
77
80
  def authenticate(auth, username_str, password_str)
78
81
  case auth['provider']
79
- when 'dummy'
80
- return (username_str != password_str)
81
- when 'ldap'
82
- ldap_base = auth[:ldap]['base']
83
- ldap_port = auth[:ldap]['port'] || 389
84
-
85
- if ldap_base.is_a? Array
86
- ldap_base.each do |search_base|
87
- result = authenticate_ldap(
88
- ldap_port,
89
- auth[:ldap]['host'],
90
- auth[:ldap]['user_object'],
91
- search_base,
92
- username_str,
93
- password_str,
94
- )
95
- return true if result == true
96
- end
97
- else
82
+ when 'dummy'
83
+ return (username_str != password_str)
84
+ when 'ldap'
85
+ ldap_base = auth[:ldap]['base']
86
+ ldap_port = auth[:ldap]['port'] || 389
87
+
88
+ if ldap_base.is_a? Array
89
+ ldap_base.each do |search_base|
98
90
  result = authenticate_ldap(
99
91
  ldap_port,
100
92
  auth[:ldap]['host'],
101
93
  auth[:ldap]['user_object'],
102
- ldap_base,
94
+ search_base,
103
95
  username_str,
104
- password_str,
96
+ password_str
105
97
  )
106
- return result
98
+ return true if result == true
107
99
  end
108
-
109
- return false
100
+ else
101
+ result = authenticate_ldap(
102
+ ldap_port,
103
+ auth[:ldap]['host'],
104
+ auth[:ldap]['user_object'],
105
+ ldap_base,
106
+ username_str,
107
+ password_str
108
+ )
109
+ return result
110
110
  end
111
+
112
+ return false
113
+ end
111
114
  end
112
115
 
113
116
  def export_tags(backend, hostname, tags)
@@ -124,6 +127,7 @@ module Vmpooler
124
127
 
125
128
  tags.each_pair do |tag, value|
126
129
  next unless filter = Vmpooler::API.settings.config[:tagfilter][tag]
130
+
127
131
  tags[tag] = value.match(filter).captures.join if value.match(filter)
128
132
  end
129
133
 
@@ -161,7 +165,7 @@ module Vmpooler
161
165
  backend.scard(key + pool['name'])
162
166
  end
163
167
  end
164
- res.inject(0){ |m, x| m+x }.to_i
168
+ res.inject(0) { |m, x| m + x }.to_i
165
169
  end
166
170
 
167
171
  # Takes the pools and a key to run scard on
@@ -201,18 +205,18 @@ module Vmpooler
201
205
  def get_capacity_metrics(pools, backend)
202
206
  capacity = {
203
207
  current: 0,
204
- total: 0,
208
+ total: 0,
205
209
  percent: 0
206
210
  }
207
211
 
208
212
  pools.each do |pool|
209
- capacity[:total] += pool['size'].to_i
213
+ capacity[:total] += pool['size'].to_i
210
214
  end
211
215
 
212
216
  capacity[:current] = get_total_across_pools_redis_scard(pools, 'vmpooler__ready__', backend)
213
217
 
214
218
  if capacity[:total] > 0
215
- capacity[:percent] = ((capacity[:current].to_f / capacity[:total].to_f) * 100.0).round(1)
219
+ capacity[:percent] = (capacity[:current].fdiv(capacity[:total]) * 100.0).round(1)
216
220
  end
217
221
 
218
222
  capacity
@@ -220,16 +224,16 @@ module Vmpooler
220
224
 
221
225
  def get_queue_metrics(pools, backend)
222
226
  queue = {
223
- pending: 0,
224
- cloning: 0,
225
- booting: 0,
226
- ready: 0,
227
- running: 0,
227
+ pending: 0,
228
+ cloning: 0,
229
+ booting: 0,
230
+ ready: 0,
231
+ running: 0,
228
232
  completed: 0,
229
- total: 0
233
+ total: 0
230
234
  }
231
235
 
232
- queue[:pending] = get_total_across_pools_redis_scard(pools,'vmpooler__pending__', backend)
236
+ queue[:pending] = get_total_across_pools_redis_scard(pools, 'vmpooler__pending__', backend)
233
237
  queue[:ready] = get_total_across_pools_redis_scard(pools, 'vmpooler__ready__', backend)
234
238
  queue[:running] = get_total_across_pools_redis_scard(pools, 'vmpooler__running__', backend)
235
239
  queue[:completed] = get_total_across_pools_redis_scard(pools, 'vmpooler__completed__', backend)
@@ -306,11 +310,11 @@ module Vmpooler
306
310
  task = {
307
311
  duration: {
308
312
  average: 0,
309
- min: 0,
310
- max: 0,
311
- total: 0
313
+ min: 0,
314
+ max: 0,
315
+ total: 0
312
316
  },
313
- count: {
317
+ count: {
314
318
  total: 0
315
319
  }
316
320
  }
@@ -450,7 +454,7 @@ module Vmpooler
450
454
  def pool_index(pools)
451
455
  pools_hash = {}
452
456
  index = 0
453
- for pool in pools
457
+ pools.each do |pool|
454
458
  pools_hash[pool['name']] = index
455
459
  index += 1
456
460
  end
@@ -461,13 +465,14 @@ module Vmpooler
461
465
  prepared_template = backend.hget('vmpooler__template__prepared', pool['name'])
462
466
  return false if prepared_template.nil?
463
467
  return true if pool['template'] == prepared_template
468
+
464
469
  return false
465
470
  end
466
471
 
467
472
  def is_integer?(x)
468
473
  Integer(x)
469
474
  true
470
- rescue
475
+ rescue StandardError
471
476
  false
472
477
  end
473
478
 
@@ -487,7 +492,7 @@ module Vmpooler
487
492
  def vm_ready?(vm_name, domain = nil)
488
493
  begin
489
494
  open_socket(vm_name, domain)
490
- rescue => _err
495
+ rescue StandardError => _e
491
496
  return false
492
497
  end
493
498
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Vmpooler
2
4
  class API
3
5
  class Reroute < Sinatra::Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Vmpooler
2
4
  class API
3
5
  class V1 < Sinatra::Base
@@ -37,22 +39,24 @@ module Vmpooler
37
39
  end
38
40
 
39
41
  def checkoutlock
40
- Vmpooler::API::settings.checkoutlock
42
+ Vmpooler::API.settings.checkoutlock
41
43
  end
42
44
 
43
45
  def fetch_single_vm(template)
44
46
  template_backends = [template]
45
47
  aliases = Vmpooler::API.settings.config[:alias]
46
48
  if aliases
47
- template_backends = template_backends + aliases[template] if aliases[template].is_a?(Array)
49
+ template_backends += aliases[template] if aliases[template].is_a?(Array)
48
50
  template_backends << aliases[template] if aliases[template].is_a?(String)
49
51
  pool_index = pool_index(pools)
50
52
  weighted_pools = {}
51
53
  template_backends.each do |t|
52
54
  next unless pool_index.key? t
55
+
53
56
  index = pool_index[t]
54
57
  clone_target = pools[index]['clone_target'] || config['clone_target']
55
58
  next unless config.key?('backend_weight')
59
+
56
60
  weight = config['backend_weight'][clone_target]
57
61
  if weight
58
62
  weighted_pools[t] = weight
@@ -75,6 +79,7 @@ module Vmpooler
75
79
  template_backends.each do |template_backend|
76
80
  vms = backend.smembers("vmpooler__ready__#{template_backend}")
77
81
  next if vms.empty?
82
+
78
83
  vms.reverse.each do |vm|
79
84
  ready = vm_ready?(vm, config['domain'])
80
85
  if ready
@@ -104,7 +109,7 @@ module Vmpooler
104
109
 
105
110
  backend.hset('vmpooler__vm__' + vm, 'token:token', request.env['HTTP_X_AUTH_TOKEN'])
106
111
  backend.hset('vmpooler__vm__' + vm, 'token:user',
107
- backend.hget('vmpooler__token__' + request.env['HTTP_X_AUTH_TOKEN'], 'user')
112
+ backend.hget('vmpooler__token__' + request.env['HTTP_X_AUTH_TOKEN'], 'user')
108
113
  )
109
114
 
110
115
  if config['vm_lifetime_auth'].to_i > 0
@@ -136,14 +141,14 @@ module Vmpooler
136
141
  metrics.increment('checkout.empty.' + requested)
137
142
  break
138
143
  else
139
- vms << [ vmpool, vmname, vmtemplate ]
144
+ vms << [vmpool, vmname, vmtemplate]
140
145
  metrics.increment('checkout.success.' + vmtemplate)
141
146
  end
142
147
  end
143
148
  end
144
149
 
145
150
  if failed
146
- vms.each do |(vmpool, vmname, vmtemplate)|
151
+ vms.each do |(vmpool, vmname, _vmtemplate)|
147
152
  return_vm_to_ready_state(vmpool, vmname)
148
153
  end
149
154
  status 503
@@ -203,7 +208,7 @@ module Vmpooler
203
208
  def reset_pool(payload)
204
209
  result = { 'ok' => false }
205
210
 
206
- payload.each do |poolname, count|
211
+ payload.each do |poolname, _count|
207
212
  backend.sadd('vmpooler__poolreset', poolname)
208
213
  end
209
214
  status 201
@@ -220,7 +225,7 @@ module Vmpooler
220
225
 
221
226
  payload.each do |poolname, clone_target|
222
227
  unless pools[pool_index[poolname]]['clone_target'] == clone_target
223
- pools[pool_index[poolname]]['clone_target'] == clone_target
228
+ pools[pool_index[poolname]]['clone_target'] = clone_target
224
229
  backend.hset('vmpooler__config__clone_target', poolname, clone_target)
225
230
  pools_updated += 1
226
231
  status 201
@@ -234,42 +239,36 @@ module Vmpooler
234
239
  def sync_pool_templates
235
240
  pool_index = pool_index(pools)
236
241
  template_configs = backend.hgetall('vmpooler__config__template')
237
- unless template_configs.nil?
238
- template_configs.each do |poolname, template|
242
+ template_configs&.each do |poolname, template|
239
243
  if pool_index.include? poolname
240
244
  unless pools[pool_index[poolname]]['template'] == template
241
245
  pools[pool_index[poolname]]['template'] = template
242
246
  end
243
247
  end
244
- end
245
248
  end
246
249
  end
247
250
 
248
251
  def sync_pool_sizes
249
252
  pool_index = pool_index(pools)
250
253
  poolsize_configs = backend.hgetall('vmpooler__config__poolsize')
251
- unless poolsize_configs.nil?
252
- poolsize_configs.each do |poolname, size|
254
+ poolsize_configs&.each do |poolname, size|
253
255
  if pool_index.include? poolname
254
256
  unless pools[pool_index[poolname]]['size'] == size.to_i
255
257
  pools[pool_index[poolname]]['size'] == size.to_i
256
258
  end
257
259
  end
258
- end
259
260
  end
260
261
  end
261
262
 
262
263
  def sync_clone_targets
263
264
  pool_index = pool_index(pools)
264
265
  clone_target_configs = backend.hgetall('vmpooler__config__clone_target')
265
- unless clone_target_configs.nil?
266
- clone_target_configs.each do |poolname, clone_target|
266
+ clone_target_configs&.each do |poolname, clone_target|
267
267
  if pool_index.include? poolname
268
268
  unless pools[pool_index[poolname]]['clone_target'] == clone_target
269
269
  pools[pool_index[poolname]]['clone_target'] == clone_target
270
- end
270
+ end
271
271
  end
272
- end
273
272
  end
274
273
  end
275
274
 
@@ -368,36 +367,38 @@ module Vmpooler
368
367
  pending_hash = get_list_across_pools_redis_scard(pools, 'vmpooler__pending__', backend)
369
368
  lastBoot_hash = get_list_across_pools_redis_hget(pools, 'vmpooler__lastboot', backend)
370
369
 
371
- pools.each do |pool|
372
- # REMIND: move this out of the API and into the back-end
373
- ready = ready_hash[pool['name']]
374
- running = running_hash[pool['name']]
375
- pending = pending_hash[pool['name']]
376
- max = pool['size']
377
- lastBoot = lastBoot_hash[pool['name']]
378
- aka = pool['alias']
379
-
380
- result[:pools][pool['name']] = {
381
- ready: ready,
382
- running: running,
383
- pending: pending,
384
- max: max,
385
- lastBoot: lastBoot
386
- }
370
+ unless views and not views.include?("pools")
371
+ pools.each do |pool|
372
+ # REMIND: move this out of the API and into the back-end
373
+ ready = ready_hash[pool['name']]
374
+ running = running_hash[pool['name']]
375
+ pending = pending_hash[pool['name']]
376
+ max = pool['size']
377
+ lastBoot = lastBoot_hash[pool['name']]
378
+ aka = pool['alias']
379
+
380
+ result[:pools][pool['name']] = {
381
+ ready: ready,
382
+ running: running,
383
+ pending: pending,
384
+ max: max,
385
+ lastBoot: lastBoot
386
+ }
387
387
 
388
- if aka
389
- result[:pools][pool['name']][:alias] = aka
390
- end
388
+ if aka
389
+ result[:pools][pool['name']][:alias] = aka
390
+ end
391
391
 
392
- # for backwards compatibility, include separate "empty" stats in "status" block
393
- if ready == 0
394
- result[:status][:empty] ||= []
395
- result[:status][:empty].push(pool['name'])
392
+ # for backwards compatibility, include separate "empty" stats in "status" block
393
+ if ready == 0
394
+ result[:status][:empty] ||= []
395
+ result[:status][:empty].push(pool['name'])
396
396
 
397
- result[:status][:ok] = false
398
- result[:status][:message] = "Found #{result[:status][:empty].length} empty pools."
397
+ result[:status][:ok] = false
398
+ result[:status][:message] = "Found #{result[:status][:empty].length} empty pools."
399
+ end
399
400
  end
400
- end unless views and not views.include?("pools")
401
+ end
401
402
 
402
403
  result[:status][:uptime] = (Time.now - Vmpooler::API.settings.config[:uptime]).round(1) if Vmpooler::API.settings.config[:uptime]
403
404
 
@@ -442,7 +443,6 @@ module Vmpooler
442
443
  if aka
443
444
  result[:pools][pool['name']][:alias] = aka
444
445
  end
445
-
446
446
  end
447
447
 
448
448
  ready_hash = get_list_across_pools_redis_scard(poolscopy, 'vmpooler__ready__', backend)
@@ -456,7 +456,7 @@ module Vmpooler
456
456
  get "#{api_prefix}/totalrunning/?" do
457
457
  content_type :json
458
458
  queue = {
459
- running: 0,
459
+ running: 0
460
460
  }
461
461
 
462
462
  queue[:running] = get_total_across_pools_redis_scard(pools, 'vmpooler__running__', backend)
@@ -753,7 +753,7 @@ module Vmpooler
753
753
 
754
754
  def invalid_pool(payload)
755
755
  invalid = []
756
- payload.each do |pool, clone_target|
756
+ payload.each do |pool, _clone_target|
757
757
  invalid << pool unless pool_exists?(pool)
758
758
  end
759
759
  invalid
@@ -837,7 +837,7 @@ module Vmpooler
837
837
  # Look up IP address of the hostname
838
838
  begin
839
839
  ipAddress = TCPSocket.gethostbyname(params[:hostname])[3]
840
- rescue
840
+ rescue StandardError
841
841
  ipAddress = ""
842
842
  end
843
843
 
@@ -893,7 +893,7 @@ module Vmpooler
893
893
  if backend.exists('vmpooler__vm__' + params[:hostname])
894
894
  begin
895
895
  jdata = JSON.parse(request.body.read)
896
- rescue
896
+ rescue StandardError
897
897
  halt 400, JSON.pretty_generate(result)
898
898
  end
899
899
 
@@ -936,7 +936,7 @@ module Vmpooler
936
936
  end
937
937
  end
938
938
 
939
- if failure.size > 0
939
+ if !failure.empty?
940
940
  status 400
941
941
  result['failure'] = failure
942
942
  else
data/lib/vmpooler/api.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Vmpooler
2
4
  class API < Sinatra::Base
3
5
  def initialize
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Vmpooler
2
4
  class Dashboard < Sinatra::Base
3
-
4
5
  def config
5
6
  Vmpooler.config
6
7
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Vmpooler
2
4
  class DummyStatsd
3
5
  attr_reader :server, :port, :prefix
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'connection_pool'
2
4
 
3
5
  module Vmpooler
@@ -20,15 +22,15 @@ module Vmpooler
20
22
  start = Time.now
21
23
  conn = checkout(options)
22
24
  timespan_ms = ((Time.now - start) * 1000).to_i
23
- @metrics.gauge(@metric_prefix + '.available', @available.length) unless @metrics.nil?
24
- @metrics.timing(@metric_prefix + '.waited', timespan_ms) unless @metrics.nil?
25
+ @metrics&.gauge(@metric_prefix + '.available', @available.length)
26
+ @metrics&.timing(@metric_prefix + '.waited', timespan_ms)
25
27
  begin
26
28
  Thread.handle_interrupt(Exception => :immediate) do
27
29
  yield conn
28
30
  end
29
31
  ensure
30
32
  checkin
31
- @metrics.gauge(@metric_prefix + '.available', @available.length) unless @metrics.nil?
33
+ @metrics&.gauge(@metric_prefix + '.available', @available.length)
32
34
  end
33
35
  end
34
36
  end
@@ -38,13 +40,13 @@ module Vmpooler
38
40
  start = Time.now
39
41
  conn = checkout(options)
40
42
  timespan_ms = ((Time.now - start) * 1000).to_i
41
- @metrics.gauge(@metric_prefix + '.available', @available.length) unless @metrics.nil?
42
- @metrics.timing(@metric_prefix + '.waited', timespan_ms) unless @metrics.nil?
43
+ @metrics&.gauge(@metric_prefix + '.available', @available.length)
44
+ @metrics&.timing(@metric_prefix + '.waited', timespan_ms)
43
45
  begin
44
46
  yield conn
45
47
  ensure
46
48
  checkin
47
- @metrics.gauge(@metric_prefix + '.available', @available.length) unless @metrics.nil?
49
+ @metrics&.gauge(@metric_prefix + '.available', @available.length)
48
50
  end
49
51
  end
50
52
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems' unless defined?(Gem)
2
4
 
3
5
  module Vmpooler
@@ -5,9 +7,7 @@ module Vmpooler
5
7
  attr_reader :server, :port, :prefix
6
8
 
7
9
  def initialize(params = {})
8
- if params['server'].nil? || params['server'].empty?
9
- raise ArgumentError, "Graphite server is required. Config: #{params.inspect}"
10
- end
10
+ raise ArgumentError, "Graphite server is required. Config: #{params.inspect}" if params['server'].nil? || params['server'].empty?
11
11
 
12
12
  @server = params['server']
13
13
  @port = params['port'] || 2003
@@ -35,8 +35,8 @@ module Vmpooler
35
35
  socket.close
36
36
  end
37
37
  end
38
- rescue => err
39
- $stderr.puts "Failure logging #{path} to graphite server [#{server}:#{port}]: #{err}"
38
+ rescue StandardError => e
39
+ warn "Failure logging #{path} to graphite server [#{server}:#{port}]: #{e}"
40
40
  end
41
41
  end
42
42
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems' unless defined?(Gem)
2
4
 
3
5
  module Vmpooler
@@ -14,7 +16,7 @@ module Vmpooler
14
16
 
15
17
  puts "[#{stamp}] #{string}" if ENV['VMPOOLER_DEBUG']
16
18
 
17
- open(@file, 'a') do |f|
19
+ File.open(@file, 'a') do |f|
18
20
  f.puts "[#{stamp}] #{string}"
19
21
  end
20
22
  end