This pull request adds support for Nil values for resources in the catalog. Currently if any resource has a parameter explicitly set to undef / nil, octocatalog-diff raises an exception along the lines of:
bundler: failed to load command: octocatalog-diff (/builds/puppet/control-repo/vendor/bundle/bin/octocatalog-diff)
RuntimeError: Bug (please report): Unexpected data structure in hashdiff_result: ["+", "Class\fSomeClass\fparameters\fconfig\fSomeResoruce\fSomekey", nil]
/builds/puppet/control-repo/vendor/bundle/gems/octocatalog-diff-2.1.0/lib/octocatalog-diff/catalog-diff/differ.rb:569:in `block in hashdiff_initial'
Having certain resource values is supported in puppet and is useful to certain patterns where we set a parameter if certain complex business logic is met otherwise leave as undef so the class/resource can use the default.
Note: I haven't added new tests as the existing ones cover adding the NilClass as a supported value.
Checklist
[x] Make sure that all of the tests pass, and fix any that don't. Just run rake in your checkout directory, or review the CI job triggered whenever you push to a pull request.
[x] Make sure that there is 100% test coverage by running rake coverage:spec or ignoring untestable sections of code with # :nocov comments. If you need help getting to 100% coverage please ask; however, don't just submit code with no tests.
[x] If you have added a new command line option, we would greatly appreciate a corresponding integration test that exercises it from start to finish. This is optional but recommended.
[x] If you have added any new gem dependencies, make sure those gems are licensed under the MIT or Apache 2.0 license. We cannot add any dependencies on gems licensed under GPL.
[x] If you have added any new gem dependencies, make sure you've checked in a copy of the .gem file into the vendor/cache directory.
/cc [related issues] [teams and individuals, making sure to mention why you're CC-ing them]
Overview
This pull request adds support for Nil values for resources in the catalog. Currently if any resource has a parameter explicitly set to undef / nil, octocatalog-diff raises an exception along the lines of:
Having certain resource values is supported in puppet and is useful to certain patterns where we set a parameter if certain complex business logic is met otherwise leave as undef so the class/resource can use the default.
Note: I haven't added new tests as the existing ones cover adding the NilClass as a supported value.
Checklist
rake
in your checkout directory, or review the CI job triggered whenever you push to a pull request.rake coverage:spec
or ignoring untestable sections of code with# :nocov
comments. If you need help getting to 100% coverage please ask; however, don't just submit code with no tests..gem
file into the vendor/cache directory./cc [related issues] [teams and individuals, making sure to mention why you're CC-ing them]