cookstyle 6.10.2 → 6.15.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +6 -0
- data/bin/cookstyle +1 -0
- data/bin/cookstyle-profile +31 -0
- data/config/cookstyle.yml +168 -39
- data/config/disable_all.yml +46 -4
- data/config/upstream.yml +198 -25
- data/cookstyle.gemspec +2 -0
- data/lib/cookstyle.rb +6 -5
- data/lib/cookstyle/version.rb +3 -2
- data/lib/rubocop/chef.rb +1 -0
- data/lib/rubocop/chef/autocorrect_helpers.rb +1 -0
- data/lib/rubocop/chef/cookbook_helpers.rb +1 -0
- data/lib/rubocop/chef/platform_helpers.rb +1 -0
- data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/cb_depends_on_self.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/chef_application_fatal.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/conditional_ruby_shellout.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/dnf_package_allow_downgrades.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +12 -1
- data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +48 -0
- data/lib/rubocop/cop/chef/correctness/invalid_notification_timing.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/invalid_platform_family_helper.rb +28 -4
- data/lib/rubocop/cop/chef/correctness/invalid_platform_family_values_in_case.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/invalid_platform_helper.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/invalid_platform_values_in_case.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_helper.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb +68 -0
- data/lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb +1 -0
- data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/node_normal.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/node_save.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +6 -5
- data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/service_resource.rb +2 -1
- data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +52 -0
- data/lib/rubocop/cop/chef/correctness/tmp_path.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/ use_automatic_resource_name.rb +52 -0
- data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +55 -0
- data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +60 -0
- data/lib/rubocop/cop/chef/deprecation/cheffile.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/easy_install.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/erl_call.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb +61 -0
- data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/node_deep_fetch.rb +8 -21
- data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/node_set.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +6 -3
- data/lib/rubocop/cop/chef/deprecation/powershell_cookbook_helpers.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/resource_uses_only_resource_name.rb +5 -4
- data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +2 -1
- data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +2 -1
- data/lib/rubocop/cop/chef/effortless/berksfile.rb +2 -1
- data/lib/rubocop/cop/chef/effortless/data_bags.rb +2 -1
- data/lib/rubocop/cop/chef/effortless/node_environment.rb +3 -2
- data/lib/rubocop/cop/chef/effortless/node_policygroup.rb +2 -1
- data/lib/rubocop/cop/chef/effortless/node_roles.rb +5 -4
- data/lib/rubocop/cop/chef/effortless/search_for_environments_or_roles.rb +2 -1
- data/lib/rubocop/cop/chef/effortless/search_used.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/action_method_in_resource.rb +57 -0
- data/lib/rubocop/cop/chef/modernize/allowed_actions_initializer.rb +4 -3
- data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/build_essential.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/compile_time_resources.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/conditional_using_test.rb +57 -0
- data/lib/rubocop/cop/chef/modernize/cron_d_file_or_template.rb +88 -0
- data/lib/rubocop/cop/chef/modernize/cron_manage_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/default_action_initializer.rb +5 -4
- data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/definitions.rb +3 -2
- data/lib/rubocop/cop/chef/modernize/depends_zypper_cookbook.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/dsl_include_in_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/empty_resource_initialize.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +3 -2
- data/lib/rubocop/cop/chef/modernize/execute_sc_exe.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/execute_sleep.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/execute_sysctl.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/execute_tzutil.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/if_provides_default_action.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/macos_user_defaults.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/node_init_package.rb +18 -9
- data/lib/rubocop/cop/chef/modernize/node_roles_include.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/openssl_rsa_key_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/openssl_x509_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/osx_config_profile_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/property_with_name_attribute.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +5 -4
- data/lib/rubocop/cop/chef/modernize/resource_name_initializer.rb +4 -3
- data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/respond_to_compile_time.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/sc_windows_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/systctl_param_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +4 -3
- data/lib/rubocop/cop/chef/modernize/use_require_relative.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/zypper_repo.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/apt_repository_notifies_apt_update.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/double_compile_time.rb +65 -0
- data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/name_property_and_required.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +5 -4
- data/lib/rubocop/cop/chef/redundant/property_splat_regex.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/resource_with_nothing_action.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/string_property_with_nil_default.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/unnecessary_desired_state.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/unnecessary_name_property.rb +2 -1
- data/lib/rubocop/cop/chef/redundant/use_create_if_missing.rb +2 -1
- data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +2 -1
- data/lib/rubocop/cop/chef/sharing/include_property_descriptions.rb +3 -2
- data/lib/rubocop/cop/chef/sharing/include_resource_descriptions.rb +3 -2
- data/lib/rubocop/cop/chef/sharing/include_resource_examples.rb +3 -2
- data/lib/rubocop/cop/chef/sharing/insecure_cookbook_url.rb +2 -1
- data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +2 -1
- data/lib/rubocop/cop/chef/style/attribute_keys.rb +2 -1
- data/lib/rubocop/cop/chef/style/chef_whaaat.rb +2 -1
- data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +2 -1
- data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +2 -1
- data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +2 -1
- data/lib/rubocop/cop/chef/style/comments_format.rb +2 -1
- data/lib/rubocop/cop/chef/style/file_mode.rb +39 -19
- data/lib/rubocop/cop/chef/style/immediate_notification_timing.rb +2 -1
- data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +58 -0
- data/lib/rubocop/cop/chef/style/negating_only_if.rb +2 -1
- data/lib/rubocop/cop/chef/style/overly_complex_supports_depends_metadata.rb +2 -1
- data/lib/rubocop/cop/chef/style/simplify_platform_major_version_check.rb +2 -1
- data/lib/rubocop/cop/chef/style/true_false_resource_properties.rb +2 -1
- data/lib/rubocop/cop/chef/style/unnecessary_os_check.rb +3 -3
- data/lib/rubocop/cop/chef/style/unnecessary_platform_case_statement.rb +3 -2
- data/lib/rubocop/cop/chef/style/use_platform_helpers.rb +3 -3
- data/lib/rubocop/monkey_patches/{cop.rb → base.rb} +2 -1
- data/lib/rubocop/monkey_patches/comment_config.rb +1 -0
- data/lib/rubocop/monkey_patches/registry_cop.rb +1 -0
- metadata +19 -6
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -37,7 +38,7 @@ module RuboCop
|
|
37
38
|
# node['hostname']
|
38
39
|
#
|
39
40
|
class NodeMethodsInsteadofAttributes < Cop
|
40
|
-
MSG = 'Use node attributes to access Ohai data instead of node methods, which were deprecated in Chef Infra Client 13.'
|
41
|
+
MSG = 'Use node attributes to access Ohai data instead of node methods, which were deprecated in Chef Infra Client 13.'
|
41
42
|
|
42
43
|
def_node_matcher :node_ohai_methods?, <<-PATTERN
|
43
44
|
(send (send nil? :node) #non_nested_ohai_attribute?)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: Copyright 2019, Chef Software Inc.
|
3
4
|
#
|
@@ -30,7 +31,7 @@ module RuboCop
|
|
30
31
|
# node.normal['foo'] = true
|
31
32
|
#
|
32
33
|
class NodeSet < Cop
|
33
|
-
MSG = 'Do not use node.set. Replace with node.normal to keep identical behavior.'
|
34
|
+
MSG = 'Do not use node.set. Replace with node.normal to keep identical behavior.'
|
34
35
|
|
35
36
|
def_node_matcher :node_set?, <<-PATTERN
|
36
37
|
(send (send _ :node) $:set)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: Copyright 2019, Chef Software Inc.
|
3
4
|
#
|
@@ -30,7 +31,7 @@ module RuboCop
|
|
30
31
|
# node.normal_unless['foo'] = true
|
31
32
|
#
|
32
33
|
class NodeSetUnless < Cop
|
33
|
-
MSG = 'Do not use node.set_unless. Replace with node.normal_unless to keep identical behavior.'
|
34
|
+
MSG = 'Do not use node.set_unless. Replace with node.normal_unless to keep identical behavior.'
|
34
35
|
|
35
36
|
def_node_matcher :node_set_unless?, <<-PATTERN
|
36
37
|
(send (send _ :node) $:set_unless)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: Copyright 2019, Chef Software Inc.
|
3
4
|
#
|
@@ -34,7 +35,7 @@ module RuboCop
|
|
34
35
|
# node.default['foo']['bar'] -= 1
|
35
36
|
#
|
36
37
|
class NodeSetWithoutLevel < Cop
|
37
|
-
MSG = 'When setting a node attribute in Chef Infra Client 11 and later you must specify the precedence level.'
|
38
|
+
MSG = 'When setting a node attribute in Chef Infra Client 11 and later you must specify the precedence level.'
|
38
39
|
|
39
40
|
def on_op_asgn(node)
|
40
41
|
# make sure it was a += or -=
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -47,7 +48,7 @@ module RuboCop
|
|
47
48
|
# end
|
48
49
|
#
|
49
50
|
class PartialSearchClassUsage < Cop
|
50
|
-
MSG = 'Legacy Chef::PartialSearch class usage should be updated to use the search helper instead with the filter_result key.'
|
51
|
+
MSG = 'Legacy Chef::PartialSearch class usage should be updated to use the search helper instead with the filter_result key.'
|
51
52
|
|
52
53
|
def_node_matcher :partial_search_class?, <<-PATTERN
|
53
54
|
(send (const (const ... :Chef) :PartialSearch) :new)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -47,7 +48,7 @@ module RuboCop
|
|
47
48
|
# end
|
48
49
|
#
|
49
50
|
class PartialSearchHelperUsage < Cop
|
50
|
-
MSG = 'Legacy partial_search usage should be updated to use :filter_result in the search helper instead'
|
51
|
+
MSG = 'Legacy partial_search usage should be updated to use :filter_result in the search helper instead'
|
51
52
|
|
52
53
|
def on_send(node)
|
53
54
|
add_offense(node, location: :expression, message: MSG, severity: :warning) if node.method_name == :partial_search
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -24,18 +25,20 @@ module RuboCop
|
|
24
25
|
#
|
25
26
|
# # bad
|
26
27
|
# poise_archive 'https://example.com/myapp.tgz' do
|
27
|
-
# destination '/opt/
|
28
|
+
# destination '/opt/my_app'
|
28
29
|
# end
|
29
30
|
#
|
30
31
|
# # good
|
31
32
|
# archive_file 'https://example.com/myapp.tgz' do
|
32
|
-
# destination '/opt/
|
33
|
+
# destination '/opt/my_app'
|
33
34
|
# end
|
34
35
|
#
|
35
36
|
class PoiseArchiveUsage < Cop
|
36
37
|
include RuboCop::Chef::CookbookHelpers
|
38
|
+
extend TargetChefVersion
|
39
|
+
minimum_target_chef_version '15.0'
|
37
40
|
|
38
|
-
MSG = 'The poise_archive resource in the deprecated poise-archive should be replaced with the archive_file resource found in Chef Infra Client 15+'
|
41
|
+
MSG = 'The poise_archive resource in the deprecated poise-archive should be replaced with the archive_file resource found in Chef Infra Client 15+'
|
39
42
|
|
40
43
|
def_node_matcher :depends_poise_archive?, <<-PATTERN
|
41
44
|
(send nil? :depends (str "poise-archive"))
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2020, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -32,7 +33,7 @@ module RuboCop
|
|
32
33
|
# powershell_version == 4.0
|
33
34
|
#
|
34
35
|
class PowershellCookbookHelpers < Cop
|
35
|
-
MSG = "Use node['powershell']['version'] or the new powershell_version helper available in Chef Infra Client 15.8+ instead of the deprecated PowerShell cookbook helpers."
|
36
|
+
MSG = "Use node['powershell']['version'] or the new powershell_version helper available in Chef Infra Client 15.8+ instead of the deprecated PowerShell cookbook helpers."
|
36
37
|
|
37
38
|
def_node_matcher :ps_cb_helper?, <<-PATTERN
|
38
39
|
(send
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -30,7 +31,7 @@ module RuboCop
|
|
30
31
|
# include_recipe 'foo'
|
31
32
|
#
|
32
33
|
class RequireRecipe < Cop
|
33
|
-
MSG = 'Use include_recipe instead of the require_recipe method'
|
34
|
+
MSG = 'Use include_recipe instead of the require_recipe method'
|
34
35
|
|
35
36
|
def_node_matcher :require_recipe?, <<-PATTERN
|
36
37
|
(send nil? :require_recipe $str)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -31,7 +32,7 @@ module RuboCop
|
|
31
32
|
# provides :SOME_PROVIDER_NAME
|
32
33
|
#
|
33
34
|
class ResourceOverridesProvidesMethod < Cop
|
34
|
-
MSG = "Don't override the provides? method in a resource provider. Use provides :SOME_PROVIDER_NAME instead. This will cause failures in Chef Infra Client 13 and later."
|
35
|
+
MSG = "Don't override the provides? method in a resource provider. Use provides :SOME_PROVIDER_NAME instead. This will cause failures in Chef Infra Client 13 and later."
|
35
36
|
|
36
37
|
def_node_search :provides, '(send nil? :provides ...)'
|
37
38
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -29,7 +30,7 @@ module RuboCop
|
|
29
30
|
# my_resource = MyResource.resource_name
|
30
31
|
#
|
31
32
|
class ResourceUsesDslNameMethod < Cop
|
32
|
-
MSG = 'Use resource_name instead of the dsl_name method in resources. This will cause failures in Chef Infra Client 13 and later.'
|
33
|
+
MSG = 'Use resource_name instead of the dsl_name method in resources. This will cause failures in Chef Infra Client 13 and later.'
|
33
34
|
|
34
35
|
def on_send(node)
|
35
36
|
add_offense(node, location: :expression, message: MSG, severity: :warning) if node.method_name == :dsl_name
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: Copyright (c) Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -30,7 +31,7 @@ module RuboCop
|
|
30
31
|
include RuboCop::Chef::CookbookHelpers
|
31
32
|
include RangeHelp
|
32
33
|
|
33
|
-
MSG = 'Starting with Chef Infra Client 16, using `resource_name` without also using `provides` will result in resource failures. Make sure to use both `resource_name` and `provides` to change the name of the resource. You can also omit `resource_name` entirely if the value set matches the name Chef Infra Client automatically assigns based on COOKBOOKNAME_FILENAME.'
|
34
|
+
MSG = 'Starting with Chef Infra Client 16, using `resource_name` without also using `provides` will result in resource failures. Make sure to use both `resource_name` and `provides` to change the name of the resource. You can also omit `resource_name` entirely if the value set matches the name Chef Infra Client automatically assigns based on COOKBOOKNAME_FILENAME.'
|
34
35
|
|
35
36
|
def_node_matcher :resource_name?, '(send nil? :resource_name (sym $_ ))'
|
36
37
|
|
@@ -38,9 +39,9 @@ module RuboCop
|
|
38
39
|
|
39
40
|
def_node_search :provides, '(send nil? :provides (sym $_) ...)'
|
40
41
|
|
41
|
-
# determine the cookbook name either by parsing
|
42
|
+
# determine the cookbook name either by parsing metadata.rb or by parsing metadata.json
|
42
43
|
#
|
43
|
-
# @
|
44
|
+
# @return [String] the cookbook name
|
44
45
|
def cookbook_name
|
45
46
|
cb_path = File.expand_path(File.join(processed_source.file_path, '../..'))
|
46
47
|
|
@@ -54,7 +55,7 @@ module RuboCop
|
|
54
55
|
|
55
56
|
# given a resource name make sure there's a provides that matches that name
|
56
57
|
#
|
57
|
-
# @
|
58
|
+
# @return [TrueClass, FalseClass]
|
58
59
|
def valid_provides?(resource_name)
|
59
60
|
provides_ast = provides(processed_source.ast)
|
60
61
|
return false unless provides_ast
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -26,7 +27,7 @@ module RuboCop
|
|
26
27
|
# provider_base ::Chef::Provider::SomethingSomething
|
27
28
|
#
|
28
29
|
class ResourceUsesProviderBaseMethod < Cop
|
29
|
-
MSG = "Don't use the deprecated provider_base method in a resource to specify the provider module to use. Instead, the provider should call provides to register itself, or the resource should call provider to specify the provider to use. This will cause failures in Chef Infra Client 13 and later."
|
30
|
+
MSG = "Don't use the deprecated provider_base method in a resource to specify the provider module to use. Instead, the provider should call provides to register itself, or the resource should call provider to specify the provider to use. This will cause failures in Chef Infra Client 13 and later."
|
30
31
|
|
31
32
|
def on_send(node)
|
32
33
|
add_offense(node, location: :expression, message: MSG, severity: :warning) if node.method_name == :provider_base
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -34,7 +35,7 @@ module RuboCop
|
|
34
35
|
# end
|
35
36
|
#
|
36
37
|
class ResourceUsesUpdatedMethod < Cop
|
37
|
-
MSG = "Don't use updated = true/false to update resource state. This will cause failures in Chef Infra Client 13 and later."
|
38
|
+
MSG = "Don't use updated = true/false to update resource state. This will cause failures in Chef Infra Client 13 and later."
|
38
39
|
|
39
40
|
def on_lvasgn(node)
|
40
41
|
add_offense(node, location: :expression, message: MSG, severity: :warning) if node.node_parts.first == :updated
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2020, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -34,7 +35,7 @@ module RuboCop
|
|
34
35
|
class Ruby27KeywordArgumentWarnings < Cop
|
35
36
|
include RuboCop::Chef::CookbookHelpers
|
36
37
|
|
37
|
-
MSG = 'Pass options to shell_out helpers without the brackets to avoid Ruby 2.7 deprecation warnings.'
|
38
|
+
MSG = 'Pass options to shell_out helpers without the brackets to avoid Ruby 2.7 deprecation warnings.'
|
38
39
|
|
39
40
|
def_node_matcher :positional_shellout?, <<-PATTERN
|
40
41
|
(send nil? {:shell_out :shell_out!} ... $(hash ... ))
|
@@ -48,7 +49,7 @@ module RuboCop
|
|
48
49
|
|
49
50
|
def autocorrect(node)
|
50
51
|
lambda do |corrector|
|
51
|
-
# @todo when we drop ruby 2.4 support we can convert
|
52
|
+
# @todo when we drop ruby 2.4 support we can convert this to just delete_prefix delete_suffix
|
52
53
|
corrector.replace(node.loc.expression, node.loc.expression.source.gsub(/^{/, '').gsub(/}$/, ''))
|
53
54
|
end
|
54
55
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -42,7 +43,7 @@ module RuboCop
|
|
42
43
|
class RubyBlockCreateAction < Cop
|
43
44
|
include RuboCop::Chef::CookbookHelpers
|
44
45
|
|
45
|
-
MSG = 'Use the :run action in the ruby_block resource instead of the deprecated :create action'
|
46
|
+
MSG = 'Use the :run action in the ruby_block resource instead of the deprecated :create action'
|
46
47
|
|
47
48
|
def on_block(node)
|
48
49
|
match_property_in_resource?(:ruby_block, 'action', node) do |ruby_action|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -33,7 +34,7 @@ module RuboCop
|
|
33
34
|
# shell_out!('/bin/foo')
|
34
35
|
#
|
35
36
|
class UsesRunCommandHelper < Cop
|
36
|
-
MSG = "Use 'shell_out!' instead of the legacy 'run_command' or 'run_command_with_systems_locale' helpers for shelling out. The run_command helper was removed in Chef Infra Client 13."
|
37
|
+
MSG = "Use 'shell_out!' instead of the legacy 'run_command' or 'run_command_with_systems_locale' helpers for shelling out. The run_command helper was removed in Chef Infra Client 13."
|
37
38
|
|
38
39
|
def_node_matcher :calls_run_command?, '(send nil? {:run_command :run_command_with_systems_locale} ...)'
|
39
40
|
def_node_matcher :require_mixin_command?, '(send nil? :require (str "chef/mixin/command"))'
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -35,7 +36,7 @@ module RuboCop
|
|
35
36
|
# search(:node, '*:*', start: 0)
|
36
37
|
#
|
37
38
|
class SearchUsesPositionalParameters < Cop
|
38
|
-
MSG = "Don't use deprecated positional parameters in cookbook search queries."
|
39
|
+
MSG = "Don't use deprecated positional parameters in cookbook search queries."
|
39
40
|
|
40
41
|
NAMED_PARAM_LOOKUP_TABLE = [nil, nil, 'start', 'rows', 'filter_result'].freeze
|
41
42
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -31,7 +32,7 @@ module RuboCop
|
|
31
32
|
class UseInlineResourcesDefined < Cop
|
32
33
|
include RangeHelp
|
33
34
|
|
34
|
-
MSG = 'use_inline_resources is now the default for resources in Chef Infra Client 13+ and does not need to be specified.'
|
35
|
+
MSG = 'use_inline_resources is now the default for resources in Chef Infra Client 13+ and does not need to be specified.'
|
35
36
|
|
36
37
|
def on_send(node)
|
37
38
|
if node.method_name == :use_inline_resources
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019-2020, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -43,7 +44,7 @@ module RuboCop
|
|
43
44
|
class UserDeprecatedSupportsProperty < Cop
|
44
45
|
include RuboCop::Chef::CookbookHelpers
|
45
46
|
|
46
|
-
MSG = "The supports property was removed in Chef Infra Client 13 in favor of individual 'manage_home' and 'non_unique' properties."
|
47
|
+
MSG = "The supports property was removed in Chef Infra Client 13 in favor of individual 'manage_home' and 'non_unique' properties."
|
47
48
|
|
48
49
|
def on_block(node)
|
49
50
|
match_property_in_resource?(:user, 'supports', node) do |property|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -38,7 +39,7 @@ module RuboCop
|
|
38
39
|
|
39
40
|
minimum_target_chef_version '12.5'
|
40
41
|
|
41
|
-
MSG = "Use the 'path' variable in the verify property and not the 'file' variable which was removed in Chef Infra Client 13."
|
42
|
+
MSG = "Use the 'path' variable in the verify property and not the 'file' variable which was removed in Chef Infra Client 13."
|
42
43
|
|
43
44
|
def on_block(node)
|
44
45
|
match_property_in_resource?(nil, 'verify', node) do |verify|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2020, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -43,7 +44,7 @@ module RuboCop
|
|
43
44
|
class WindowsFeatureServermanagercmd < Cop
|
44
45
|
include RuboCop::Chef::CookbookHelpers
|
45
46
|
|
46
|
-
MSG = 'The `windows_feature` resource no longer supports setting the `install_method` to `:servermanagercmd`. `:windows_feature_dism` or `:windows_feature_powershell` should be used instead.'
|
47
|
+
MSG = 'The `windows_feature` resource no longer supports setting the `install_method` to `:servermanagercmd`. `:windows_feature_dism` or `:windows_feature_powershell` should be used instead.'
|
47
48
|
|
48
49
|
def on_block(node)
|
49
50
|
match_property_in_resource?(:windows_feature, :install_method, node) do |prop_node|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -45,7 +46,7 @@ module RuboCop
|
|
45
46
|
|
46
47
|
minimum_target_chef_version '13.0'
|
47
48
|
|
48
|
-
MSG = 'The :change action in the windows_task resource was removed when windows_task was added to Chef Infra Client 13+. The default action of :create should can now be used to create an update tasks.'
|
49
|
+
MSG = 'The :change action in the windows_task resource was removed when windows_task was added to Chef Infra Client 13+. The default action of :create should can now be used to create an update tasks.'
|
49
50
|
|
50
51
|
def on_block(node)
|
51
52
|
match_property_in_resource?(:windows_task, 'action', node) do |action_node|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019-2020, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -39,7 +40,7 @@ module RuboCop
|
|
39
40
|
|
40
41
|
minimum_target_chef_version '14.0'
|
41
42
|
|
42
|
-
MSG = "Use node['platform_version'] and node['kernel'] data introduced in Chef Infra Client 14 instead of the deprecated Windows::VersionHelper helpers from the Windows cookbook."
|
43
|
+
MSG = "Use node['platform_version'] and node['kernel'] data introduced in Chef Infra Client 14 instead of the deprecated Windows::VersionHelper helpers from the Windows cookbook."
|
43
44
|
|
44
45
|
def_node_matcher :windows_helper?, <<-PATTERN
|
45
46
|
(send ( const ( const {nil? cbase} :Windows ) :VersionHelper ) $_ )
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019-2020, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -26,7 +27,7 @@ module RuboCop
|
|
26
27
|
# include_recipe 'xml::ruby'
|
27
28
|
#
|
28
29
|
class IncludingXMLRubyRecipe < Cop
|
29
|
-
MSG = 'Do not include the deprecated xml::ruby recipe to install the nokogiri gem. Chef Infra Client 12 and later ships with nokogiri included.'
|
30
|
+
MSG = 'Do not include the deprecated xml::ruby recipe to install the nokogiri gem. Chef Infra Client 12 and later ships with nokogiri included.'
|
30
31
|
|
31
32
|
def_node_matcher :xml_ruby_recipe?, <<-PATTERN
|
32
33
|
(send nil? :include_recipe (str "xml::ruby"))
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software, Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -29,7 +30,7 @@ module RuboCop
|
|
29
30
|
class IncludingYumDNFCompatRecipe < Cop
|
30
31
|
include RangeHelp
|
31
32
|
|
32
|
-
MSG = 'Do not include the deprecated yum::dnf_yum_compat default recipe to install yum on dnf systems. Chef Infra Client now includes built in support for DNF packages.'
|
33
|
+
MSG = 'Do not include the deprecated yum::dnf_yum_compat default recipe to install yum on dnf systems. Chef Infra Client now includes built in support for DNF packages.'
|
33
34
|
|
34
35
|
def_node_matcher :yum_dnf_compat_recipe_usage?, <<-PATTERN
|
35
36
|
(send nil? :include_recipe (str "yum::dnf_yum_compat"))
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -24,7 +25,7 @@ module RuboCop
|
|
24
25
|
class Berksfile < Cop
|
25
26
|
include RangeHelp
|
26
27
|
|
27
|
-
MSG = 'Policyfiles should be used for cookbook dependency solving instead of a Berkshelf Berksfile.'
|
28
|
+
MSG = 'Policyfiles should be used for cookbook dependency solving instead of a Berkshelf Berksfile.'
|
28
29
|
|
29
30
|
def investigate(processed_source)
|
30
31
|
return if processed_source.blank?
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: Copyright 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -26,7 +27,7 @@ module RuboCop
|
|
26
27
|
# data_bag_item('admins', login)
|
27
28
|
# data_bag(data_bag_name)
|
28
29
|
class CookbookUsesDatabags < Cop
|
29
|
-
MSG = 'Cookbook uses data bags, which cannot be used in the Effortless Infra pattern'
|
30
|
+
MSG = 'Cookbook uses data bags, which cannot be used in the Effortless Infra pattern'
|
30
31
|
|
31
32
|
def on_send(node)
|
32
33
|
add_offense(node, location: :expression, message: MSG, severity: :refactor) if %i(data_bag data_bag_item).include?(node.method_name)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
#
|
2
3
|
# Copyright:: Copyright 2019, Chef Software Inc.
|
3
4
|
# Author:: Tim Smith (<tsmith@chef.io>)
|
@@ -26,8 +27,8 @@ module RuboCop
|
|
26
27
|
# node.environment == "production"
|
27
28
|
# node.chef_environment == "production"
|
28
29
|
#
|
29
|
-
class
|
30
|
-
MSG = 'Cookbook uses environments, which cannot be used in Policyfiles or Effortless Infra'
|
30
|
+
class CookbookUsesEnvironments < Cop
|
31
|
+
MSG = 'Cookbook uses environments, which cannot be used in Policyfiles or Effortless Infra'
|
31
32
|
|
32
33
|
def on_send(node)
|
33
34
|
if %i(environment chef_environment).include?(node.method_name) && node.receiver && node.receiver.send_type? && node.receiver.method_name == :node
|