From dddb81f2d1924a9d4e33e7e26065402b99cc192b Mon Sep 17 00:00:00 2001 From: "kirby@puppetlabs.com" Date: Mon, 23 Jul 2018 16:50:03 -0700 Subject: [PATCH] Remove VM from completed only after destroy This commit updates destroy_vm to remove the redis member from the completed queue only after a destroy has been completed. Without this change a VM that is being destroyed will be logged as discovered when inventory is checked since it has already been removed from the completed queue. --- CHANGELOG.md | 4 ++++ lib/vmpooler/pool_manager.rb | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a193b34d0..2a59c61d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ git logs & PR history. # [Unreleased](/~https://github.com/puppetlabs/vmpooler/compare/0.1.0...master) +### Fixed + +- A VM that is being destroyed is reported as discovered + # [0.1.0](/~https://github.com/puppetlabs/vmpooler/compare/4c858d012a262093383e57ea6db790521886d8d4...master) ### Fixed diff --git a/lib/vmpooler/pool_manager.rb b/lib/vmpooler/pool_manager.rb index 34d3c5545..3da22ecc8 100644 --- a/lib/vmpooler/pool_manager.rb +++ b/lib/vmpooler/pool_manager.rb @@ -298,7 +298,6 @@ def _destroy_vm(vm, pool, provider) mutex = vm_mutex(vm) return if mutex.locked? mutex.synchronize do - $redis.srem('vmpooler__completed__' + pool, vm) $redis.hdel('vmpooler__active__' + pool, vm) $redis.hset('vmpooler__vm__' + vm, 'destroy', Time.now) @@ -309,6 +308,8 @@ def _destroy_vm(vm, pool, provider) provider.destroy_vm(pool, vm) + $redis.srem('vmpooler__completed__' + pool, vm) + finish = format('%.2f', Time.now - start) $logger.log('s', "[-] [#{pool}] '#{vm}' destroyed in #{finish} seconds") $metrics.timing("destroy.#{pool}", finish)