diff options
-rw-r--r-- | lib/chef/win32/registry.rb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/chef/win32/registry.rb b/lib/chef/win32/registry.rb index bccd2e3c72..e10a9027b9 100644 --- a/lib/chef/win32/registry.rb +++ b/lib/chef/win32/registry.rb @@ -61,7 +61,8 @@ class Chef end def set_value(key_path, value) - Chef::Log.debug("Updating value #{value[:name]} in registry key #{key_path} with type #{value[:type]} and data #{value[:data]}") + data = value[:data].to_s if value[:data] + Chef::Log.debug("Updating value #{value[:name]} in registry key #{key_path} with type #{value[:type]} and data #{data}") key_exists!(key_path) hive, key = get_hive_and_key(key_path) if value_exists?(key_path, value) @@ -70,13 +71,13 @@ class Chef return false else hive.open(key, ::Win32::Registry::KEY_SET_VALUE | ::Win32::Registry::KEY_QUERY_VALUE | registry_system_architecture) do |reg| - reg.write(value[:name], get_type_from_name(value[:type]), value[:data]) + reg.write(value[:name], get_type_from_name(value[:type]), data) end Chef::Log.debug("Value #{value[:name]} in registry key #{key_path} updated") end else hive.open(key, ::Win32::Registry::KEY_SET_VALUE | ::Win32::Registry::KEY_QUERY_VALUE | registry_system_architecture) do |reg| - reg.write(value[:name], get_type_from_name(value[:type]), value[:data]) + reg.write(value[:name], get_type_from_name(value[:type]), data) end Chef::Log.debug("Value #{value[:name]} in registry key #{key_path} created") end @@ -206,13 +207,14 @@ class Chef end def data_exists?(key_path, value) + data = value[:data].to_s if value[:data] key_exists!(key_path) hive, key = get_hive_and_key(key_path) hive.open(key, ::Win32::Registry::KEY_READ | registry_system_architecture) do |reg| reg.each do |val_name, val_type, val_data| if safely_downcase(val_name) == safely_downcase(value[:name]) && val_type == get_type_from_name(value[:type]) && - val_data == value[:data] + val_data == data return true end end |