vmpooler 0.8.1 → 0.8.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 +1 -1
- data/lib/vmpooler/pool_manager.rb +26 -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: 9ca5e041d051fc1f66b4de635492388443b35ec4
|
4
|
+
data.tar.gz: 0389293f134e875f3a7f74da8cfcb6f72bd94601
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cadcac1a60a44662720f498ce83af5506e8c13ab39c9029fa53c030936d22d942529a41873d7ae7489d64487388f195d99f944f831e51cbb172e96c111a0052
|
7
|
+
data.tar.gz: f1ff4a6f52c8a8981f4ce126add76eee6d1ae863ba078053d48fa537e78ebc249989192abbe728482385de65208e7180a6e77c9c7c6849de35eafaec39fb194d
|
data/lib/vmpooler/api/helpers.rb
CHANGED
@@ -267,10 +267,34 @@ module Vmpooler
|
|
267
267
|
end
|
268
268
|
end
|
269
269
|
|
270
|
-
def
|
270
|
+
def generate_and_check_hostname(pool_name)
|
271
271
|
# Generate a randomized hostname
|
272
272
|
random_name = [@name_generator.adjective(max: 7), @name_generator.noun(max: 7)].join('-')
|
273
|
-
|
273
|
+
hostname = $config[:config]['prefix'] + random_name
|
274
|
+
available = $redis.hlen('vmpooler__vm__' + hostname) == 0
|
275
|
+
|
276
|
+
return hostname, available
|
277
|
+
end
|
278
|
+
|
279
|
+
def find_unique_hostname(pool_name)
|
280
|
+
hostname_retries = 0
|
281
|
+
max_hostname_retries = 3
|
282
|
+
while hostname_retries < max_hostname_retries
|
283
|
+
hostname, available = generate_and_check_hostname(pool_name)
|
284
|
+
break if available
|
285
|
+
|
286
|
+
hostname_retries += 1
|
287
|
+
$metrics.increment("errors.duplicatehostname.#{pool_name}")
|
288
|
+
$logger.log('s', "[!] [#{pool_name}] Generated hostname #{hostname} was not unique (attempt \##{hostname_retries} of #{max_hostname_retries})")
|
289
|
+
end
|
290
|
+
|
291
|
+
raise "Unable to generate a unique hostname after #{hostname_retries} attempts. The last hostname checked was #{hostname}" unless available
|
292
|
+
|
293
|
+
hostname
|
294
|
+
end
|
295
|
+
|
296
|
+
def _clone_vm(pool_name, provider)
|
297
|
+
new_vmname = find_unique_hostname(pool_name)
|
274
298
|
|
275
299
|
# Add VM to Redis inventory ('pending' pool)
|
276
300
|
$redis.sadd('vmpooler__pending__' + pool_name, new_vmname)
|
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.8.
|
4
|
+
version: 0.8.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-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pickup
|