chef

https://github.com/opscode/chef

Ruby

A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.

Chef::Resource::RegistryKey#unscrubbed_values

Some registry key data types may not be safely reported as json.
Example (CHEF-5323):

registry_key 'HKEY_CURRENT_USER\\ChefTest2014' do
  values [{
    :name => "ValueWithBadData",
    :type => :binary,
    :data => 255.chr * 1
  }]
  action :create
end

will raise Encoding::UndefinedConversionError: "\xFF" from ASCII-8BIT to UTF-8.

To avoid sending data that cannot be nicely converted for json, we have
the values method return "safe" data if the data type is "unsafe". Known "unsafe"
data types are :binary, :dword, :dword-big-endian, and :qword. If other
criteria generate data that cannot reliably be sent as json, add that criteria
to the needs_checksum? method. When unsafe data is detected, the values method
returns an md5 checksum of the listed data.

:unscrubbed_values returns the values exactly as provided in the resource (i.e.,
data is not checksummed, regardless of the data type/"unsafe" criteria).

Future:
If we have conflicts with other resources reporting json incompatible state, we
may want to extend the state_attrs API with the ability to rename POST'd attrs.

See lib/chef/resource_reporter.rb for more information.

Source | Google | Stack overflow

Edit

git clone [email protected]:opscode/chef.git

cd chef

open lib/chef/resource/registry_key.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-Chef--Resource--RegistryKey-unscrubbed_values-for-pr


# Commit to git

git add lib/chef/resource/registry_key.rbgit commit -m "better docs for Chef::Resource::RegistryKey#unscrubbed_values"


# Open pull request

gem install hub # on a mac you can `brew install hub`

hub fork

git push <your name> -your-name--update-docs-Chef--Resource--RegistryKey-unscrubbed_values-for-pr

hub pull-request


# Celebrate!