-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Labels
Status: UntriagedAn issue that has yet to be triaged.An issue that has yet to be triaged.Type: BugDoes not work as expected.Does not work as expected.
Description
Version:
cookstyle (7.32.1)
rubocop (1.25.1)
rubocop-ast (1.24.1)
Environment:
Ruby 3.0.3 with Gemfile.lock
Scenario:
Trying to lint/find Chef resources that use node attributes for default property values without lazy {}, as described in https://docs.chef.io/custom_resource_glossary/#lazy
Steps to Reproduce:
Add following properties to Chef resource:
cookbook_name/resources/test.rb
property :hostname, String, default: node['hostname']
property :release, String, default: node['kernel']['release']
Expected Result:
To have offenses shown for both properties.
Actual Result:
Cookstyle catches only default: node['hostname'] violation:
bundle exec cookstyle resources/test.rb
resources/test.rb:1:38: R: [Correctable] Chef/Correctness/LazyEvalNodeAttributeDefaults: When setting a node attribute as the default value for a custom resource property, wrap the node attribute in lazy {} so that its value is available when the resource executes. (https://docs.chef.io/workstation/cookstyle/chef_correctness_lazyevalnodeattributedefaults)
property :hostname, String, default: node['hostname']
^^^^^^^^^^^^^^^^
Metadata
Metadata
Assignees
Labels
Status: UntriagedAn issue that has yet to be triaged.An issue that has yet to be triaged.Type: BugDoes not work as expected.Does not work as expected.