summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaire McQuin <claire@getchef.com>2015-08-31 13:17:22 -0700
committerClaire McQuin <claire@getchef.com>2015-09-01 13:44:56 -0700
commitd2c7cc43765ddb10a7efbf49d3b4411847186c9b (patch)
treeb18aa71ac3fdd87e914bfd479746c3a5cee28e1d
parent9121bd4bc2a3ac892f908a40b8453e2302552e38 (diff)
downloadchef-d2c7cc43765ddb10a7efbf49d3b4411847186c9b.tar.gz
Don't raise error on delete_value failure
-rw-r--r--lib/chef/win32/registry.rb21
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