vmpooler 0.8.1 → 0.8.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/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
|