diff options
author | Tim Green <tgreen@opscode.com> | 2012-08-03 17:24:22 -0400 |
---|---|---|
committer | jtimberman <joshua@opscode.com> | 2012-08-18 10:11:36 -0600 |
commit | 65eebd5557dfc8966bc9d528c074c77d85274d6a (patch) | |
tree | 110b47b7b16ec8ea1ce8644e24e28f49a4164a5f | |
parent | b91020183720f158f47f9da9a7eadec713f9d3fc (diff) | |
download | mixlib-shellout-65eebd5557dfc8966bc9d528c074c77d85274d6a.tar.gz |
[COOK-1173]: make provider action :remove idempotent
-rw-r--r-- | libraries/registry_helper.rb | 9 |
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 |