vmpooler 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vmpooler/api/helpers.rb +23 -0
- data/lib/vmpooler/api/v1.rb +11 -4
- 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: 03cf2be498c698d23100da26391cef6f2a63bb87
|
4
|
+
data.tar.gz: f239eb2ccb445f4ef5a6dc31bad5cdd80fb02f37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83d8fbf7d283098ead4b860e83fe4f1cee94760450fe240609678137581a33c7007bd2bc33e9cfaeb73f91eff59b71eedd4f9cacec6b661499deb33846bab746
|
7
|
+
data.tar.gz: 28983a8ffa2a190699f0169de957ee182a2194abb96f1aa42f62e17d32f5085fd36afd24c014f649142766594cd4e9e85cd682f273fa78e5ee297f577d6a2094
|
data/lib/vmpooler/api/helpers.rb
CHANGED
@@ -470,6 +470,29 @@ module Vmpooler
|
|
470
470
|
rescue
|
471
471
|
false
|
472
472
|
end
|
473
|
+
|
474
|
+
def open_socket(host, domain = nil, timeout = 1, port = 22, &_block)
|
475
|
+
Timeout.timeout(timeout) do
|
476
|
+
target_host = host
|
477
|
+
target_host = "#{host}.#{domain}" if domain
|
478
|
+
sock = TCPSocket.new target_host, port
|
479
|
+
begin
|
480
|
+
yield sock if block_given?
|
481
|
+
ensure
|
482
|
+
sock.close
|
483
|
+
end
|
484
|
+
end
|
485
|
+
end
|
486
|
+
|
487
|
+
def vm_ready?(vm_name, domain = nil)
|
488
|
+
begin
|
489
|
+
open_socket(vm_name, domain)
|
490
|
+
rescue => _err
|
491
|
+
return false
|
492
|
+
end
|
493
|
+
|
494
|
+
true
|
495
|
+
end
|
473
496
|
end
|
474
497
|
end
|
475
498
|
end
|
data/lib/vmpooler/api/v1.rb
CHANGED
@@ -68,10 +68,17 @@ module Vmpooler
|
|
68
68
|
end
|
69
69
|
|
70
70
|
template_backends.each do |template_backend|
|
71
|
-
|
72
|
-
if
|
73
|
-
|
74
|
-
|
71
|
+
vms = backend.smembers("vmpooler__ready__#{template_backend}")
|
72
|
+
next if vms.empty?
|
73
|
+
vms.reverse.each do |vm|
|
74
|
+
ready = vm_ready?(vm, config['domain'])
|
75
|
+
if ready
|
76
|
+
backend.smove("vmpooler__ready__#{template_backend}", "vmpooler__running__#{template_backend}", vm)
|
77
|
+
return [vm, template_backend, template]
|
78
|
+
else
|
79
|
+
backend.smove("vmpooler__ready__#{template_backend}", "vmpooler__completed__#{template_backend}", vm)
|
80
|
+
metrics.increment("checkout.nonresponsive.#{template_backend}")
|
81
|
+
end
|
75
82
|
end
|
76
83
|
end
|
77
84
|
[nil, nil, nil]
|
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.6.
|
4
|
+
version: 0.6.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-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pickup
|