vmpooler 0.10.3 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/vmpooler +2 -3
- data/lib/vmpooler/api/dashboard.rb +12 -5
- data/lib/vmpooler/api/helpers.rb +47 -42
- data/lib/vmpooler/api/reroute.rb +2 -0
- data/lib/vmpooler/api/v1.rb +49 -49
- data/lib/vmpooler/api.rb +2 -0
- data/lib/vmpooler/dashboard.rb +2 -1
- data/lib/vmpooler/dummy_statsd.rb +2 -0
- data/lib/vmpooler/generic_connection_pool.rb +8 -6
- data/lib/vmpooler/graphite.rb +5 -5
- data/lib/vmpooler/logger.rb +3 -1
- data/lib/vmpooler/pool_manager.rb +133 -120
- data/lib/vmpooler/providers/base.rb +5 -3
- data/lib/vmpooler/providers/dummy.rb +16 -12
- data/lib/vmpooler/providers/vsphere.rb +114 -95
- data/lib/vmpooler/providers.rb +13 -15
- data/lib/vmpooler/statsd.rb +9 -9
- data/lib/vmpooler/version.rb +3 -1
- data/lib/vmpooler.rb +20 -11
- metadata +2 -2
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Vmpooler
|
2
4
|
class PoolManager
|
3
5
|
class Provider
|
@@ -222,7 +224,7 @@ module Vmpooler
|
|
222
224
|
# [Hash] pool : Configuration for the pool
|
223
225
|
# returns
|
224
226
|
# nil when successful. Raises error when encountered
|
225
|
-
def create_template_delta_disks(
|
227
|
+
def create_template_delta_disks(_pool)
|
226
228
|
raise("#{self.class.name} does not implement create_template_delta_disks")
|
227
229
|
end
|
228
230
|
|
@@ -230,11 +232,11 @@ module Vmpooler
|
|
230
232
|
# [String] provider_name : Name of the provider
|
231
233
|
# returns
|
232
234
|
# Hash of folders
|
233
|
-
def get_target_datacenter_from_config(
|
235
|
+
def get_target_datacenter_from_config(_provider_name)
|
234
236
|
raise("#{self.class.name} does not implement get_target_datacenter_from_config")
|
235
237
|
end
|
236
238
|
|
237
|
-
def purge_unconfigured_folders(
|
239
|
+
def purge_unconfigured_folders(_base_folders, _configured_folders, _whitelist)
|
238
240
|
raise("#{self.class.name} does not implement purge_unconfigured_folders")
|
239
241
|
end
|
240
242
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yaml'
|
2
4
|
require 'vmpooler/providers/base'
|
3
5
|
|
@@ -73,10 +75,10 @@ module Vmpooler
|
|
73
75
|
return current_vm['vm_host'] if provider_config['migratevm_couldmove_percent'].nil?
|
74
76
|
|
75
77
|
# Only migrate if migratevm_couldmove_percent is met
|
76
|
-
return current_vm['vm_host'] if
|
78
|
+
return current_vm['vm_host'] if rand(1..100) > provider_config['migratevm_couldmove_percent']
|
77
79
|
|
78
80
|
# Simulate a 10 node cluster and randomly pick a different one
|
79
|
-
new_host = 'HOST' + (1
|
81
|
+
new_host = 'HOST' + rand(1..10).to_s while new_host == current_vm['vm_host']
|
80
82
|
|
81
83
|
new_host
|
82
84
|
end
|
@@ -93,7 +95,7 @@ module Vmpooler
|
|
93
95
|
|
94
96
|
# Inject clone failure
|
95
97
|
unless provider_config['migratevm_fail_percent'].nil?
|
96
|
-
raise('Dummy Failure for migratevm_fail_percent') if
|
98
|
+
raise('Dummy Failure for migratevm_fail_percent') if rand(1..100) <= provider_config['migratevm_fail_percent']
|
97
99
|
end
|
98
100
|
|
99
101
|
@write_lock.synchronize do
|
@@ -114,7 +116,7 @@ module Vmpooler
|
|
114
116
|
|
115
117
|
# Randomly power off the VM
|
116
118
|
unless dummy['powerstate'] != 'PoweredOn' || provider_config['getvm_poweroff_percent'].nil?
|
117
|
-
if
|
119
|
+
if rand(1..100) <= provider_config['getvm_poweroff_percent']
|
118
120
|
@write_lock.synchronize do
|
119
121
|
dummy = get_dummy_vm(pool_name, vm_name)
|
120
122
|
dummy['powerstate'] = 'PoweredOff'
|
@@ -126,7 +128,7 @@ module Vmpooler
|
|
126
128
|
|
127
129
|
# Randomly rename the host
|
128
130
|
unless dummy['hostname'] != dummy['name'] || provider_config['getvm_rename_percent'].nil?
|
129
|
-
if
|
131
|
+
if rand(1..100) <= provider_config['getvm_rename_percent']
|
130
132
|
@write_lock.synchronize do
|
131
133
|
dummy = get_dummy_vm(pool_name, vm_name)
|
132
134
|
dummy['hostname'] = 'DUMMY' + dummy['name']
|
@@ -194,7 +196,7 @@ module Vmpooler
|
|
194
196
|
begin
|
195
197
|
# Inject clone failure
|
196
198
|
unless provider_config['createvm_fail_percent'].nil?
|
197
|
-
raise('Dummy Failure for createvm_fail_percent') if
|
199
|
+
raise('Dummy Failure for createvm_fail_percent') if rand(1..100) <= provider_config['createvm_fail_percent']
|
198
200
|
end
|
199
201
|
|
200
202
|
# Assert the VM is ready for use
|
@@ -202,7 +204,7 @@ module Vmpooler
|
|
202
204
|
vm['dummy_state'] = 'RUNNING'
|
203
205
|
write_backing_file
|
204
206
|
end
|
205
|
-
rescue =>
|
207
|
+
rescue StandardError => _e
|
206
208
|
@write_lock.synchronize do
|
207
209
|
remove_dummy_vm(pool_name, dummy_hostname)
|
208
210
|
write_backing_file
|
@@ -227,7 +229,7 @@ module Vmpooler
|
|
227
229
|
|
228
230
|
# Inject create failure
|
229
231
|
unless provider_config['createdisk_fail_percent'].nil?
|
230
|
-
raise('Dummy Failure for createdisk_fail_percent') if
|
232
|
+
raise('Dummy Failure for createdisk_fail_percent') if rand(1..100) <= provider_config['createdisk_fail_percent']
|
231
233
|
end
|
232
234
|
|
233
235
|
@write_lock.synchronize do
|
@@ -253,7 +255,7 @@ module Vmpooler
|
|
253
255
|
|
254
256
|
# Inject create failure
|
255
257
|
unless provider_config['createsnapshot_fail_percent'].nil?
|
256
|
-
raise('Dummy Failure for createsnapshot_fail_percent') if
|
258
|
+
raise('Dummy Failure for createsnapshot_fail_percent') if rand(1..100) <= provider_config['createsnapshot_fail_percent']
|
257
259
|
end
|
258
260
|
|
259
261
|
@write_lock.synchronize do
|
@@ -280,7 +282,7 @@ module Vmpooler
|
|
280
282
|
|
281
283
|
# Inject create failure
|
282
284
|
unless provider_config['revertsnapshot_fail_percent'].nil?
|
283
|
-
raise('Dummy Failure for revertsnapshot_fail_percent') if
|
285
|
+
raise('Dummy Failure for revertsnapshot_fail_percent') if rand(1..100) <= provider_config['revertsnapshot_fail_percent']
|
284
286
|
end
|
285
287
|
end
|
286
288
|
|
@@ -318,7 +320,7 @@ module Vmpooler
|
|
318
320
|
|
319
321
|
# Inject destroy VM failure
|
320
322
|
unless provider_config['destroyvm_fail_percent'].nil?
|
321
|
-
raise('Dummy Failure for migratevm_fail_percent') if
|
323
|
+
raise('Dummy Failure for migratevm_fail_percent') if rand(1..100) <= provider_config['destroyvm_fail_percent']
|
322
324
|
end
|
323
325
|
|
324
326
|
# 'Destroy' the VM
|
@@ -352,7 +354,7 @@ module Vmpooler
|
|
352
354
|
sleep(2)
|
353
355
|
|
354
356
|
unless provider_config['vmready_fail_percent'].nil?
|
355
|
-
raise('Dummy Failure for vmready_fail_percent') if
|
357
|
+
raise('Dummy Failure for vmready_fail_percent') if rand(1..100) <= provider_config['vmready_fail_percent']
|
356
358
|
end
|
357
359
|
|
358
360
|
@write_lock.synchronize do
|
@@ -370,6 +372,7 @@ module Vmpooler
|
|
370
372
|
|
371
373
|
def remove_dummy_vm(pool_name, vm_name)
|
372
374
|
return if @dummylist['pool'][pool_name].nil?
|
375
|
+
|
373
376
|
new_poollist = @dummylist['pool'][pool_name].delete_if { |vm| vm['name'] == vm_name }
|
374
377
|
@dummylist['pool'][pool_name] = new_poollist
|
375
378
|
end
|
@@ -395,6 +398,7 @@ module Vmpooler
|
|
395
398
|
def write_backing_file
|
396
399
|
dummyfilename = provider_config['filename']
|
397
400
|
return if dummyfilename.nil?
|
401
|
+
|
398
402
|
File.open(dummyfilename, 'w') { |file| file.write(YAML.dump(@dummylist)) }
|
399
403
|
end
|
400
404
|
end
|