vmpooler 0.13.2 → 0.14.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ # utility class shared between apps
4
+ module Vmpooler
5
+ class Parsing
6
+ def self.get_platform_pool_count(requested, &_block)
7
+ requested_platforms = requested.split(',')
8
+ requested_platforms.each do |platform|
9
+ platform_alias, pool, count = platform.split(':')
10
+ raise ArgumentError if platform_alias.nil? || pool.nil? || count.nil?
11
+
12
+ yield platform_alias, pool, count
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Vmpooler
4
- VERSION = '0.13.2'
4
+ VERSION = '0.14.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmpooler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.2
4
+ version: 0.14.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-05 00:00:00.000000000 Z
11
+ date: 2020-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pickup
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: prometheus-client
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: net-ldap
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -205,13 +219,18 @@ files:
205
219
  - lib/vmpooler/api.rb
206
220
  - lib/vmpooler/api/dashboard.rb
207
221
  - lib/vmpooler/api/helpers.rb
222
+ - lib/vmpooler/api/request_logger.rb
208
223
  - lib/vmpooler/api/reroute.rb
209
224
  - lib/vmpooler/api/v1.rb
210
225
  - lib/vmpooler/dashboard.rb
211
- - lib/vmpooler/dummy_statsd.rb
212
226
  - lib/vmpooler/generic_connection_pool.rb
213
- - lib/vmpooler/graphite.rb
214
227
  - lib/vmpooler/logger.rb
228
+ - lib/vmpooler/metrics.rb
229
+ - lib/vmpooler/metrics/dummy_statsd.rb
230
+ - lib/vmpooler/metrics/graphite.rb
231
+ - lib/vmpooler/metrics/promstats.rb
232
+ - lib/vmpooler/metrics/promstats/collector_middleware.rb
233
+ - lib/vmpooler/metrics/statsd.rb
215
234
  - lib/vmpooler/pool_manager.rb
216
235
  - lib/vmpooler/providers.rb
217
236
  - lib/vmpooler/providers/base.rb
@@ -228,7 +247,7 @@ files:
228
247
  - lib/vmpooler/public/lib/dashboard.js
229
248
  - lib/vmpooler/public/lib/jquery.min.js
230
249
  - lib/vmpooler/public/vmpooler.css
231
- - lib/vmpooler/statsd.rb
250
+ - lib/vmpooler/util/parsing.rb
232
251
  - lib/vmpooler/version.rb
233
252
  - lib/vmpooler/views/dashboard.erb
234
253
  - lib/vmpooler/views/layout.erb
@@ -251,7 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
270
  - !ruby/object:Gem::Version
252
271
  version: '0'
253
272
  requirements: []
254
- rubygems_version: 3.0.6
273
+ rubygems_version: 3.0.8
255
274
  signing_key:
256
275
  specification_version: 4
257
276
  summary: vmpooler provides configurable pools of instantly-available (running) virtual
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Vmpooler
4
- class DummyStatsd
5
- attr_reader :server, :port, :prefix
6
-
7
- def initialize(*)
8
- end
9
-
10
- def increment(*)
11
- true
12
- end
13
-
14
- def gauge(*)
15
- true
16
- end
17
-
18
- def timing(*)
19
- true
20
- end
21
- end
22
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rubygems' unless defined?(Gem)
4
-
5
- module Vmpooler
6
- class Graphite
7
- attr_reader :server, :port, :prefix
8
-
9
- def initialize(params = {})
10
- raise ArgumentError, "Graphite server is required. Config: #{params.inspect}" if params['server'].nil? || params['server'].empty?
11
-
12
- @server = params['server']
13
- @port = params['port'] || 2003
14
- @prefix = params['prefix'] || 'vmpooler'
15
- end
16
-
17
- def increment(label)
18
- log label, 1
19
- end
20
-
21
- def gauge(label, value)
22
- log label, value
23
- end
24
-
25
- def timing(label, duration)
26
- log label, duration
27
- end
28
-
29
- def log(path, value)
30
- Thread.new do
31
- socket = TCPSocket.new(server, port)
32
- begin
33
- socket.puts "#{prefix}.#{path} #{value} #{Time.now.to_i}"
34
- ensure
35
- socket.close
36
- end
37
- end
38
- rescue Errno::EADDRNOTAVAIL => e
39
- warn "Could not assign address to graphite server #{server}: #{e}"
40
- rescue StandardError => e
41
- warn "Failure logging #{path} to graphite server [#{server}:#{port}]: #{e}"
42
- end
43
- end
44
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rubygems' unless defined?(Gem)
4
- require 'statsd'
5
-
6
- module Vmpooler
7
- class Statsd
8
- attr_reader :server, :port, :prefix
9
-
10
- def initialize(params = {})
11
- raise ArgumentError, "Statsd server is required. Config: #{params.inspect}" if params['server'].nil? || params['server'].empty?
12
-
13
- host = params['server']
14
- @port = params['port'] || 8125
15
- @prefix = params['prefix'] || 'vmpooler'
16
- @server = ::Statsd.new(host, @port)
17
- end
18
-
19
- def increment(label)
20
- server.increment(prefix + '.' + label)
21
- rescue StandardError => e
22
- warn "Failure incrementing #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
23
- end
24
-
25
- def gauge(label, value)
26
- server.gauge(prefix + '.' + label, value)
27
- rescue StandardError => e
28
- warn "Failure updating gauge #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
29
- end
30
-
31
- def timing(label, duration)
32
- server.timing(prefix + '.' + label, duration)
33
- rescue StandardError => e
34
- warn "Failure updating timing #{prefix}.#{label} on statsd server [#{server}:#{port}]: #{e}"
35
- end
36
- end
37
- end