vmpooler 0.7.1 → 0.7.2
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 +4 -4
- data/lib/vmpooler/api/v1.rb +18 -12
- data/lib/vmpooler/api.rb +1 -0
- data/lib/vmpooler/pool_manager.rb +8 -2
- data/lib/vmpooler/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18126b74e4adebbee73caa9f3e676c02b90cb309
|
4
|
+
data.tar.gz: c39e9a2391865688b5acb66e191145c63fae9ab6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a580a1eb9e085541434f5711879d9a99a17bab90bf8680789dde160940b0f36e2d6308cfab211cb39e76ac217da7825e356b6d727eedf8f1d2867e8edc6c623a
|
7
|
+
data.tar.gz: 39b7bfa786001efad19a7a48cc73536ea7e941eee006e8f15a959f4e551267532211d6a49e7cb42b10f8f0720621d2282c4fd40c4a386eca2befee4814e61ba5
|
data/lib/vmpooler/api/v1.rb
CHANGED
@@ -36,6 +36,10 @@ module Vmpooler
|
|
36
36
|
validate_token(backend)
|
37
37
|
end
|
38
38
|
|
39
|
+
def checkoutlock
|
40
|
+
Vmpooler::API::settings.checkoutlock
|
41
|
+
end
|
42
|
+
|
39
43
|
def fetch_single_vm(template)
|
40
44
|
template_backends = [template]
|
41
45
|
aliases = Vmpooler::API.settings.config[:alias]
|
@@ -67,21 +71,23 @@ module Vmpooler
|
|
67
71
|
end
|
68
72
|
end
|
69
73
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
74
|
+
checkoutlock.synchronize do
|
75
|
+
template_backends.each do |template_backend|
|
76
|
+
vms = backend.smembers("vmpooler__ready__#{template_backend}")
|
77
|
+
next if vms.empty?
|
78
|
+
vms.reverse.each do |vm|
|
79
|
+
ready = vm_ready?(vm, config['domain'])
|
80
|
+
if ready
|
81
|
+
backend.smove("vmpooler__ready__#{template_backend}", "vmpooler__running__#{template_backend}", vm)
|
82
|
+
return [vm, template_backend, template]
|
83
|
+
else
|
84
|
+
backend.smove("vmpooler__ready__#{template_backend}", "vmpooler__completed__#{template_backend}", vm)
|
85
|
+
metrics.increment("checkout.nonresponsive.#{template_backend}")
|
86
|
+
end
|
81
87
|
end
|
82
88
|
end
|
89
|
+
[nil, nil, nil]
|
83
90
|
end
|
84
|
-
[nil, nil, nil]
|
85
91
|
end
|
86
92
|
|
87
93
|
def return_vm_to_ready_state(template, vm)
|
data/lib/vmpooler/api.rb
CHANGED
@@ -156,8 +156,14 @@ module Vmpooler
|
|
156
156
|
$redis.hset('vmpooler__vm__' + vm, 'check', Time.now)
|
157
157
|
# Check if the hosts TTL has expired
|
158
158
|
if ttl > 0
|
159
|
-
#
|
160
|
-
|
159
|
+
# if 'boottime' is nil, set bootime to beginning of unix epoch, forces TTL to be assumed expired
|
160
|
+
boottime = $redis.hget("vmpooler__vm__#{vm}", 'ready')
|
161
|
+
if boottime
|
162
|
+
boottime = Time.parse(boottime)
|
163
|
+
else
|
164
|
+
boottime = Time.at(0)
|
165
|
+
end
|
166
|
+
if ((Time.now - boottime) / 60).to_s[/^\d+\.\d{1}/].to_f > ttl
|
161
167
|
$redis.smove('vmpooler__ready__' + pool_name, 'vmpooler__completed__' + pool_name, vm)
|
162
168
|
|
163
169
|
$logger.log('d', "[!] [#{pool_name}] '#{vm}' reached end of TTL after #{ttl} minutes, removed from 'ready' queue")
|
data/lib/vmpooler/version.rb
CHANGED
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.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pickup
|