diff options
author | Claire McQuin <claire@getchef.com> | 2015-08-31 13:17:22 -0700 |
---|---|---|
committer | Claire McQuin <claire@getchef.com> | 2015-09-01 13:44:56 -0700 |
commit | d2c7cc43765ddb10a7efbf49d3b4411847186c9b (patch) | |
tree | b18aa71ac3fdd87e914bfd479746c3a5cee28e1d | |
parent | 9121bd4bc2a3ac892f908a40b8453e2302552e38 (diff) | |
download | chef-d2c7cc43765ddb10a7efbf49d3b4411847186c9b.tar.gz |
Don't raise error on delete_value failure
-rw-r--r-- | lib/chef/win32/registry.rb | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/lib/chef/win32/registry.rb b/lib/chef/win32/registry.rb index 830fd300a0..e7eeb6c973 100644 --- a/lib/chef/win32/registry.rb +++ b/lib/chef/win32/registry.rb @@ -91,8 +91,15 @@ class Chef return true end hive.open(key, ::Win32::Registry::KEY_SET_VALUE | registry_system_architecture) do |reg| - reg_delete_value(reg, value[:name]) - Chef::Log.debug("Deleted value #{value[:name]} from registry key #{key_path}") + # ::Win32::Registry#delete_value is broken in Ruby 2.1 (up to Ruby 2.1.6p336). + # This should be resolved a later release (see note #9 in link below). + # https://bugs.ruby-lang.org/issues/10820 + if RegDeleteValueW(reg.hkey, wstring(value[:name])) + Chef::Log.debug("Deleted value #{value[:name]} from registry key #{key_path}") + else + Chef::Log.debug("Unable to delete value #{value[:name]} from registry key #{key_path}") + return false + end end else Chef::Log.debug("Value #{value[:name]} in registry key #{key_path} does not exist, not updated") @@ -393,16 +400,6 @@ class Chef hive_name = reg_path.shift key = reg_path.join("\\") end - - # ::Win32::Registry#delete_value is broken in Ruby 2.1 - # (up to Ruby 2.1.6p336). This should be resolved a - # later release (see note #9 in link below). - # https://bugs.ruby-lang.org/issues/10820 - def reg_delete_value(reg, value) - unless RegDeleteValueW(reg.hkey, wstring(value)) - Chef::ReservedNames::Win32::Error.raise! - end - end end end end |