vmpooler 0.10.3 → 0.11.0

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
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