summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjtimberman <joshua@opscode.com>2012-08-18 10:11:43 -0600
committerjtimberman <joshua@opscode.com>2012-08-18 10:11:43 -0600
commitcf583460671d5322b0cf492037ba17f614bfdf71 (patch)
tree110b47b7b16ec8ea1ce8644e24e28f49a4164a5f
parentb91020183720f158f47f9da9a7eadec713f9d3fc (diff)
parent65eebd5557dfc8966bc9d528c074c77d85274d6a (diff)
downloadmixlib-shellout-cf583460671d5322b0cf492037ba17f614bfdf71.tar.gz
Merge branch 'COOK-1173'
-rw-r--r--libraries/registry_helper.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/libraries/registry_helper.rb b/libraries/registry_helper.rb
index 4432769..1c683d5 100644
--- a/libraries/registry_helper.rb
+++ b/libraries/registry_helper.rb
@@ -160,8 +160,13 @@ module Windows
hive.open(key, ::Win32::Registry::KEY_ALL_ACCESS | @@native_registry_constant) do | reg |
values.each_key { |key|
name = "#{key}"
- Chef::Log.debug("Deleting value #{name} in #{path}")
- reg.delete_value(name)
+ # Ensure delete operation is idempotent.
+ if value_exists?(path, key)
+ Chef::Log.debug("Deleting value #{name} in #{path}")
+ reg.delete_value(name)
+ else
+ Chef::Log.debug("Value #{name} in #{path} does not exist, skipping.")
+ end
}
end