cookstyle 6.15.5 → 6.16.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/config/cookstyle.yml +13 -8
- data/config/disable_all.yml +20 -0
- data/config/upstream.yml +79 -12
- data/lib/cookstyle/version.rb +2 -2
- data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +7 -9
- data/lib/rubocop/cop/chef/correctness/chef_application_fatal.rb +5 -9
- data/lib/rubocop/cop/chef/correctness/conditional_ruby_shellout.rb +5 -9
- data/lib/rubocop/cop/chef/correctness/dnf_package_allow_downgrades.rb +5 -8
- data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +11 -9
- data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +3 -2
- data/lib/rubocop/cop/chef/correctness/invalid_notification_timing.rb +3 -2
- data/lib/rubocop/cop/chef/correctness/invalid_platform_family_helper.rb +16 -21
- data/lib/rubocop/cop/chef/correctness/invalid_platform_family_values_in_case.rb +15 -23
- data/lib/rubocop/cop/chef/correctness/invalid_platform_helper.rb +3 -2
- data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +13 -14
- data/lib/rubocop/cop/chef/correctness/invalid_platform_values_in_case.rb +13 -22
- data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +5 -3
- data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_helper.rb +5 -3
- data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +3 -4
- data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +5 -8
- data/lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb +2 -3
- data/lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb +6 -7
- data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +5 -12
- data/lib/rubocop/cop/chef/correctness/node_normal.rb +2 -2
- data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +2 -2
- data/lib/rubocop/cop/chef/correctness/node_save.rb +2 -2
- data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +7 -7
- data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +2 -2
- data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +4 -4
- data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +2 -2
- data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +2 -2
- data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +6 -2
- data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +6 -8
- data/lib/rubocop/cop/chef/correctness/service_resource.rb +3 -2
- data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +1 -0
- data/lib/rubocop/cop/chef/correctness/tmp_path.rb +4 -4
- data/lib/rubocop/cop/chef/deprecation/ use_automatic_resource_name.rb +1 -2
- data/lib/rubocop/cop/chef/{correctness → deprecation}/cb_depends_on_self.rb +7 -11
- data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +7 -10
- data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +4 -3
- data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +16 -28
- data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +5 -8
- data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +3 -6
- data/lib/rubocop/cop/chef/deprecation/cheffile.rb +3 -5
- data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +5 -8
- data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +5 -8
- data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +11 -14
- data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +12 -10
- data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +2 -2
- data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +11 -12
- data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +8 -8
- data/lib/rubocop/cop/chef/deprecation/easy_install.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +5 -6
- data/lib/rubocop/cop/chef/deprecation/erl_call.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +11 -12
- data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +6 -9
- data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +6 -9
- data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +2 -2
- data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +5 -9
- data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/node_set.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +6 -4
- data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +2 -2
- data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +4 -3
- data/lib/rubocop/cop/chef/deprecation/powershell_cookbook_helpers.rb +5 -9
- data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +8 -7
- data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +4 -4
- data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/resource_uses_only_resource_name.rb +6 -9
- data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +3 -2
- data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +2 -2
- data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +7 -10
- data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +5 -4
- data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +7 -8
- data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +10 -13
- data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +11 -14
- data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +6 -8
- data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +2 -2
- data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +11 -16
- data/lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb +4 -9
- data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +7 -8
- data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +6 -8
- data/lib/rubocop/cop/chef/effortless/berksfile.rb +3 -5
- data/lib/rubocop/cop/chef/effortless/data_bags.rb +3 -2
- data/lib/rubocop/cop/chef/effortless/node_environment.rb +6 -3
- data/lib/rubocop/cop/chef/effortless/node_policygroup.rb +6 -3
- data/lib/rubocop/cop/chef/effortless/node_roles.rb +6 -3
- data/lib/rubocop/cop/chef/effortless/search_for_environments_or_roles.rb +4 -3
- data/lib/rubocop/cop/chef/effortless/search_used.rb +3 -2
- data/lib/rubocop/cop/chef/modernize/allowed_actions_initializer.rb +16 -16
- data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +3 -2
- data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +10 -9
- data/lib/rubocop/cop/chef/modernize/build_essential.rb +7 -8
- data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +12 -10
- data/lib/rubocop/cop/chef/modernize/compile_time_resources.rb +2 -2
- data/lib/rubocop/cop/chef/modernize/conditional_using_test.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/cron_d_file_or_template.rb +2 -2
- data/lib/rubocop/cop/chef/modernize/cron_manage_resource.rb +4 -6
- data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +7 -8
- data/lib/rubocop/cop/chef/modernize/default_action_initializer.rb +11 -13
- data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +5 -8
- data/lib/rubocop/cop/chef/modernize/definitions.rb +2 -2
- data/lib/rubocop/cop/chef/modernize/depends_zypper_cookbook.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/dsl_include_in_resource.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/empty_resource_initialize.rb +5 -8
- data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +7 -4
- data/lib/rubocop/cop/chef/modernize/execute_sc_exe.rb +7 -9
- data/lib/rubocop/cop/chef/modernize/execute_sleep.rb +7 -11
- data/lib/rubocop/cop/chef/modernize/execute_sysctl.rb +6 -9
- data/lib/rubocop/cop/chef/modernize/execute_tzutil.rb +8 -4
- data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +7 -12
- data/lib/rubocop/cop/chef/modernize/if_provides_default_action.rb +4 -6
- data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +13 -9
- data/lib/rubocop/cop/chef/modernize/macos_user_defaults.rb +4 -6
- data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/node_roles_include.rb +5 -9
- data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +3 -2
- data/lib/rubocop/cop/chef/modernize/openssl_rsa_key_resource.rb +4 -6
- data/lib/rubocop/cop/chef/modernize/openssl_x509_resource.rb +4 -6
- data/lib/rubocop/cop/chef/modernize/osx_config_profile_resource.rb +5 -6
- data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +3 -4
- data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +5 -9
- data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +3 -4
- data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +3 -4
- data/lib/rubocop/cop/chef/modernize/property_with_name_attribute.rb +6 -9
- data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +13 -15
- data/lib/rubocop/cop/chef/modernize/resource_name_initializer.rb +10 -14
- data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +3 -4
- data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +8 -8
- data/lib/rubocop/cop/chef/modernize/respond_to_compile_time.rb +4 -9
- data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +20 -16
- data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/sc_windows_resource.rb +2 -1
- data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +3 -2
- data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +3 -8
- data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +5 -7
- data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +6 -10
- data/lib/rubocop/cop/chef/modernize/{systctl_param_resource.rb → sysctl_param_resource.rb} +4 -6
- data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +11 -10
- data/lib/rubocop/cop/chef/modernize/use_require_relative.rb +7 -9
- data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +5 -8
- data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +6 -8
- data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +6 -7
- data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +3 -2
- data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +4 -3
- data/lib/rubocop/cop/chef/modernize/zypper_repo.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +5 -8
- data/lib/rubocop/cop/chef/redundant/apt_repository_notifies_apt_update.rb +6 -8
- data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +8 -13
- data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +7 -9
- data/lib/rubocop/cop/chef/redundant/name_property_and_required.rb +2 -2
- data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +4 -8
- data/lib/rubocop/cop/chef/redundant/property_splat_regex.rb +8 -9
- data/lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb +5 -9
- data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/resource_with_nothing_action.rb +5 -8
- data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +6 -7
- data/lib/rubocop/cop/chef/redundant/string_property_with_nil_default.rb +7 -9
- data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +4 -6
- data/lib/rubocop/cop/chef/redundant/unnecessary_desired_state.rb +1 -0
- data/lib/rubocop/cop/chef/redundant/unnecessary_name_property.rb +10 -9
- data/lib/rubocop/cop/chef/redundant/use_create_if_missing.rb +7 -9
- data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +3 -2
- data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +3 -2
- data/lib/rubocop/cop/chef/sharing/include_property_descriptions.rb +4 -3
- data/lib/rubocop/cop/chef/sharing/include_resource_descriptions.rb +5 -5
- data/lib/rubocop/cop/chef/sharing/include_resource_examples.rb +4 -4
- data/lib/rubocop/cop/chef/sharing/insecure_cookbook_url.rb +7 -8
- data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +8 -12
- data/lib/rubocop/cop/chef/style/chef_whaaat.rb +3 -4
- data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +5 -7
- data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +5 -9
- data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +5 -7
- data/lib/rubocop/cop/chef/style/comments_format.rb +13 -16
- data/lib/rubocop/cop/chef/style/file_mode.rb +1 -0
- data/lib/rubocop/cop/chef/style/immediate_notification_timing.rb +7 -8
- data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +1 -0
- data/lib/rubocop/cop/chef/style/negating_only_if.rb +5 -9
- data/lib/rubocop/cop/chef/style/overly_complex_supports_depends_metadata.rb +5 -9
- data/lib/rubocop/cop/chef/style/simplify_platform_major_version_check.rb +6 -8
- data/lib/rubocop/cop/chef/style/true_false_resource_properties.rb +6 -9
- data/lib/rubocop/cop/chef/style/unnecessary_os_check.rb +17 -28
- data/lib/rubocop/cop/chef/style/unnecessary_platform_case_statement.rb +5 -9
- data/lib/rubocop/cop/chef/style/use_platform_helpers.rb +11 -19
- metadata +6 -6
@@ -38,7 +38,7 @@ module RuboCop
|
|
38
38
|
# resource = Chef::Resource::File.new("/tmp/foo.xyz", run_context)
|
39
39
|
# provider = resource.provider_for_action(:create)
|
40
40
|
#
|
41
|
-
class DeprecatedPlatformMethods <
|
41
|
+
class DeprecatedPlatformMethods < Base
|
42
42
|
MSG = 'Use provider_for_action instead of the deprecated Chef::Platform methods in resources, which were removed in Chef Infra Client 13.'
|
43
43
|
|
44
44
|
def_node_matcher :platform_method?, <<-PATTERN
|
@@ -47,7 +47,7 @@ module RuboCop
|
|
47
47
|
|
48
48
|
def on_send(node)
|
49
49
|
platform_method?(node) do
|
50
|
-
add_offense(node,
|
50
|
+
add_offense(node, message: MSG, severity: :warning)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -39,25 +39,24 @@ module RuboCop
|
|
39
39
|
# shell_out!('foo')
|
40
40
|
# shell_out!('foo', default_env: false) # replaces shell_out_with_systems_locale
|
41
41
|
#
|
42
|
-
class DeprecatedShelloutMethods <
|
42
|
+
class DeprecatedShelloutMethods < Base
|
43
43
|
extend TargetChefVersion
|
44
44
|
|
45
45
|
minimum_target_chef_version '14.3'
|
46
46
|
|
47
|
-
DEPRECATED_SHELLOUT_METHODS = %i( shell_out_compact
|
48
|
-
shell_out_compact!
|
49
|
-
shell_out_compact_timeout
|
50
|
-
shell_out_compact_timeout!
|
51
|
-
shell_out_with_timeout
|
52
|
-
shell_out_with_timeout!
|
53
|
-
shell_out_with_systems_locale
|
54
|
-
shell_out_with_systems_locale!
|
55
|
-
).freeze
|
56
|
-
|
57
47
|
MSG = 'Many legacy specialized shell_out methods were replaced in Chef Infra Client 14.3 and removed in Chef Infra Client 15. Use shell_out and any additional options if necessary.'
|
48
|
+
RESTRICT_ON_SEND = %i( shell_out_compact
|
49
|
+
shell_out_compact!
|
50
|
+
shell_out_compact_timeout
|
51
|
+
shell_out_compact_timeout!
|
52
|
+
shell_out_with_timeout
|
53
|
+
shell_out_with_timeout!
|
54
|
+
shell_out_with_systems_locale
|
55
|
+
shell_out_with_systems_locale!
|
56
|
+
).freeze
|
58
57
|
|
59
58
|
def on_send(node)
|
60
|
-
add_offense(node,
|
59
|
+
add_offense(node, message: MSG, severity: :warning)
|
61
60
|
end
|
62
61
|
end
|
63
62
|
end
|
@@ -28,11 +28,12 @@ module RuboCop
|
|
28
28
|
# # do some legacy things
|
29
29
|
# end
|
30
30
|
#
|
31
|
-
class DeprecatedWindowsVersionCheck <
|
31
|
+
class DeprecatedWindowsVersionCheck < Base
|
32
32
|
MSG = "Don't use the deprecated older_than_win_2012_or_8? helper. Windows versions before 2012 and 8 are now end of life and this helper will always return false."
|
33
|
+
RESTRICT_ON_SEND = [:older_than_win_2012_or_8?].freeze
|
33
34
|
|
34
35
|
def on_send(node)
|
35
|
-
add_offense(node,
|
36
|
+
add_offense(node, message: MSG, severity: :warning)
|
36
37
|
end
|
37
38
|
end
|
38
39
|
end
|
@@ -41,9 +41,10 @@ module RuboCop
|
|
41
41
|
# action :create
|
42
42
|
# end
|
43
43
|
#
|
44
|
-
class DeprecatedYumRepositoryProperties <
|
44
|
+
class DeprecatedYumRepositoryProperties < Base
|
45
45
|
include RuboCop::Chef::CookbookHelpers
|
46
46
|
extend TargetChefVersion
|
47
|
+
extend AutoCorrector
|
47
48
|
|
48
49
|
minimum_target_chef_version '12.14'
|
49
50
|
|
@@ -52,16 +53,15 @@ module RuboCop
|
|
52
53
|
def on_block(node)
|
53
54
|
%w(url keyurl mirrorexpire).each do |prop|
|
54
55
|
match_property_in_resource?(:yum_repository, prop, node) do |prop_node|
|
55
|
-
add_offense(prop_node,
|
56
|
+
add_offense(prop_node, message: MSG, severity: :warning) do |corrector|
|
57
|
+
corrector.replace(prop_node.loc.expression, prop_node.loc.expression.source
|
58
|
+
.gsub(/^url/, 'baseurl')
|
59
|
+
.gsub(/^keyurl/, 'gpgkey')
|
60
|
+
.gsub(/^mirrorexpire/, 'mirror_expire'))
|
61
|
+
end
|
56
62
|
end
|
57
63
|
end
|
58
64
|
end
|
59
|
-
|
60
|
-
def autocorrect(node)
|
61
|
-
lambda do |corrector|
|
62
|
-
corrector.replace(node.loc.expression, node.loc.expression.source.gsub(/^url/, 'baseurl').gsub(/^keyurl/, 'gpgkey').gsub(/^mirrorexpire/, 'mirror_expire'))
|
63
|
-
end
|
64
|
-
end
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
@@ -29,11 +29,12 @@ module RuboCop
|
|
29
29
|
# bar
|
30
30
|
# end
|
31
31
|
#
|
32
|
-
class EasyInstallResource <
|
32
|
+
class EasyInstallResource < Base
|
33
33
|
MSG = "Don't use the deprecated easy_install resource removed in Chef Infra Client 13"
|
34
|
+
RESTRICT_ON_SEND = [:easy_install].freeze
|
34
35
|
|
35
36
|
def on_send(node)
|
36
|
-
add_offense(node,
|
37
|
+
add_offense(node, message: MSG, severity: :warning)
|
37
38
|
end
|
38
39
|
end
|
39
40
|
end
|
@@ -32,14 +32,15 @@ module RuboCop
|
|
32
32
|
# end
|
33
33
|
# end
|
34
34
|
|
35
|
-
class EOLAuditModeUsage <
|
35
|
+
class EOLAuditModeUsage < Base
|
36
36
|
MSG = 'The beta Audit Mode feature in Chef Infra Client was removed in Chef Infra Client 15.0. Users should instead use InSpec and the audit cookbook. See https://www.inspec.io/ for more information.'
|
37
|
+
RESTRICT_ON_SEND = [:control_group].freeze
|
37
38
|
|
38
39
|
def_node_matcher :control_group?, '(send nil? :control_group ...)'
|
39
40
|
|
40
41
|
def on_send(node)
|
41
42
|
control_group?(node) do
|
42
|
-
add_offense(node
|
43
|
+
add_offense(node.loc.selector, message: MSG, severity: :warning)
|
43
44
|
end
|
44
45
|
end
|
45
46
|
end
|
@@ -34,15 +34,14 @@ module RuboCop
|
|
34
34
|
# ignore_failure true
|
35
35
|
# end
|
36
36
|
#
|
37
|
-
class EpicFail <
|
37
|
+
class EpicFail < Base
|
38
|
+
extend AutoCorrector
|
39
|
+
|
38
40
|
MSG = 'Use ignore_failure method instead of the deprecated epic_fail method'
|
41
|
+
RESTRICT_ON_SEND = [:epic_fail].freeze
|
39
42
|
|
40
43
|
def on_send(node)
|
41
|
-
add_offense(node,
|
42
|
-
end
|
43
|
-
|
44
|
-
def autocorrect(node)
|
45
|
-
lambda do |corrector|
|
44
|
+
add_offense(node, message: MSG, severity: :warning) do |corrector|
|
46
45
|
corrector.replace(node.loc.expression, 'ignore_failure true')
|
47
46
|
end
|
48
47
|
end
|
@@ -29,11 +29,12 @@ module RuboCop
|
|
29
29
|
# bar
|
30
30
|
# end
|
31
31
|
#
|
32
|
-
class ErlCallResource <
|
32
|
+
class ErlCallResource < Base
|
33
33
|
MSG = "Don't use the deprecated erl_call resource removed in Chef Infra Client 13"
|
34
|
+
RESTRICT_ON_SEND = [:erl_call].freeze
|
34
35
|
|
35
36
|
def on_send(node)
|
36
|
-
add_offense(node,
|
37
|
+
add_offense(node, message: MSG, severity: :warning)
|
37
38
|
end
|
38
39
|
end
|
39
40
|
end
|
@@ -82,7 +82,9 @@ module RuboCop
|
|
82
82
|
# # better
|
83
83
|
# Convert your legacy HWRPs to custom resources
|
84
84
|
#
|
85
|
-
class HWRPWithoutProvides <
|
85
|
+
class HWRPWithoutProvides < Base
|
86
|
+
extend AutoCorrector
|
87
|
+
|
86
88
|
MSG = 'In Chef Infra Client 16 and later a legacy HWRP resource must use `provides` to define how the resource is called in recipes or other resources. To maintain compatibility with Chef Infra Client < 16 use both `resource_name` and `provides`.'
|
87
89
|
|
88
90
|
def_node_matcher :HWRP?, <<-PATTERN
|
@@ -102,8 +104,15 @@ module RuboCop
|
|
102
104
|
def_node_search :resource_name, '(send nil? :resource_name (sym $_))'
|
103
105
|
|
104
106
|
def on_class(node)
|
107
|
+
return if has_provides?
|
105
108
|
HWRP?(node) do |inherit|
|
106
|
-
add_offense(inherit,
|
109
|
+
add_offense(inherit, message: MSG, severity: :warning) do |corrector|
|
110
|
+
resource_name_ast(node) do |ast_match|
|
111
|
+
# build a new string to add after that includes the new line and the proper indentation
|
112
|
+
new_string = "\n" + ast_match.source.dup.gsub('resource_name', 'provides').prepend(' ' * indentation(ast_match))
|
113
|
+
corrector.insert_after(ast_match.source_range, new_string)
|
114
|
+
end
|
115
|
+
end
|
107
116
|
end
|
108
117
|
end
|
109
118
|
|
@@ -125,16 +134,6 @@ module RuboCop
|
|
125
134
|
def indentation(node)
|
126
135
|
node.source_range.source_line =~ /\S/
|
127
136
|
end
|
128
|
-
|
129
|
-
def autocorrect(node)
|
130
|
-
lambda do |corrector|
|
131
|
-
resource_name_ast(node) do |ast_match|
|
132
|
-
# build a new string to add after that includes the new line and the proper indentation
|
133
|
-
new_string = "\n" + ast_match.source.dup.gsub('resource_name', 'provides').prepend(' ' * indentation(ast_match))
|
134
|
-
corrector.insert_after(ast_match.source_range, new_string)
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
137
|
end
|
139
138
|
end
|
140
139
|
end
|
@@ -37,7 +37,9 @@ module RuboCop
|
|
37
37
|
# # better
|
38
38
|
# Write a custom resource using the custom resource DSL and avoid class based HWRPs entirely
|
39
39
|
#
|
40
|
-
class ResourceInheritsFromCompatResource <
|
40
|
+
class ResourceInheritsFromCompatResource < Base
|
41
|
+
extend AutoCorrector
|
42
|
+
|
41
43
|
MSG = "HWRP style resource should inherit from the 'Chef::Resource' class and not the 'ChefCompat::Resource' class from the deprecated compat_resource cookbook."
|
42
44
|
|
43
45
|
def_node_matcher :inherits_from_compat_resource?, <<-PATTERN
|
@@ -46,13 +48,9 @@ module RuboCop
|
|
46
48
|
|
47
49
|
def on_class(node)
|
48
50
|
inherits_from_compat_resource?(node) do
|
49
|
-
add_offense(node,
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
def autocorrect(node)
|
54
|
-
lambda do |corrector|
|
55
|
-
corrector.replace(node.loc.expression, node.loc.expression.source.gsub('ChefCompat', 'Chef'))
|
51
|
+
add_offense(node, message: MSG, severity: :warning) do |corrector|
|
52
|
+
corrector.replace(node.loc.expression, node.loc.expression.source.gsub('ChefCompat', 'Chef'))
|
53
|
+
end
|
56
54
|
end
|
57
55
|
end
|
58
56
|
end
|
@@ -33,23 +33,20 @@ module RuboCop
|
|
33
33
|
# plist_hash foo: 'bar'
|
34
34
|
# end
|
35
35
|
#
|
36
|
-
class LaunchdDeprecatedHashProperty <
|
36
|
+
class LaunchdDeprecatedHashProperty < Base
|
37
37
|
include RuboCop::Chef::CookbookHelpers
|
38
38
|
extend TargetChefVersion
|
39
|
+
extend AutoCorrector
|
39
40
|
|
40
41
|
minimum_target_chef_version '12.19'
|
41
42
|
|
42
43
|
MSG = "The launchd resource's hash property was renamed to plist_hash in Chef Infra Client 13+ to avoid conflicts with Ruby's hash class."
|
43
44
|
|
44
45
|
def on_block(node)
|
45
|
-
match_property_in_resource?(:launchd, 'hash', node) do |
|
46
|
-
add_offense(
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
def autocorrect(node)
|
51
|
-
lambda do |corrector|
|
52
|
-
corrector.replace(node.loc.expression, node.loc.expression.source.gsub(/^hash/, 'plist_hash'))
|
46
|
+
match_property_in_resource?(:launchd, 'hash', node) do |offense|
|
47
|
+
add_offense(offense.loc.expression, message: MSG, severity: :warning) do |corrector|
|
48
|
+
corrector.replace(offense.loc.expression, offense.loc.expression.source.gsub(/^hash/, 'plist_hash'))
|
49
|
+
end
|
53
50
|
end
|
54
51
|
end
|
55
52
|
end
|
@@ -57,22 +57,19 @@ module RuboCop
|
|
57
57
|
# subscribes :restart, "service[#{service_name_variable}]", :immediately
|
58
58
|
# end
|
59
59
|
#
|
60
|
-
class LegacyNotifySyntax <
|
60
|
+
class LegacyNotifySyntax < Base
|
61
|
+
extend AutoCorrector
|
62
|
+
|
61
63
|
MSG = 'Use the new-style notification syntax which allows you to notify resources defined later in a recipe or resource.'
|
64
|
+
RESTRICT_ON_SEND = [:notifies, :subscribes].freeze
|
62
65
|
|
63
66
|
def_node_matcher :legacy_notify?, <<-PATTERN
|
64
67
|
(send nil? ${:notifies :subscribes} $(sym _) (send nil? :resources (hash (pair $(sym _) $(...) ) ) ) $... )
|
65
68
|
PATTERN
|
66
69
|
|
67
70
|
def on_send(node)
|
68
|
-
legacy_notify?(node) do
|
69
|
-
add_offense(node,
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def autocorrect(node)
|
74
|
-
lambda do |corrector|
|
75
|
-
legacy_notify?(node) do |notify_type, action, type, name, timing|
|
71
|
+
legacy_notify?(node) do |notify_type, action, type, name, timing|
|
72
|
+
add_offense(node, message: MSG, severity: :warning) do |corrector|
|
76
73
|
service_value = case name.type
|
77
74
|
when :str
|
78
75
|
"'#{type.source}[#{name.value}]'"
|
@@ -33,8 +33,9 @@ module RuboCop
|
|
33
33
|
# include_recipe 'yum::repoforge'
|
34
34
|
# include_recipe 'yum::yum'
|
35
35
|
#
|
36
|
-
class LegacyYumCookbookRecipes <
|
36
|
+
class LegacyYumCookbookRecipes < Base
|
37
37
|
MSG = 'The elrepo, epel, ius, remi, and repoforge recipes were split into their own cookbooks and the yum recipe was renamed to be default with the release of yum cookbook 3.0 (Dec 2013).'
|
38
|
+
RESTRICT_ON_SEND = [:include_recipe].freeze
|
38
39
|
|
39
40
|
def_node_matcher :old_yum_recipe?, <<-PATTERN
|
40
41
|
(send nil? :include_recipe (str {"yum::elrepo" "yum::epel" "yum::ius" "yum::remi" "yum::repoforge" "yum::yum"}))
|
@@ -42,7 +43,7 @@ module RuboCop
|
|
42
43
|
|
43
44
|
def on_send(node)
|
44
45
|
old_yum_recipe?(node) do
|
45
|
-
add_offense(node,
|
46
|
+
add_offense(node, message: MSG, severity: :warning)
|
46
47
|
end
|
47
48
|
end
|
48
49
|
end
|
@@ -29,14 +29,14 @@ module RuboCop
|
|
29
29
|
# lc_all 'en_gb.utf-8'
|
30
30
|
# end
|
31
31
|
#
|
32
|
-
class LocaleDeprecatedLcAllProperty <
|
32
|
+
class LocaleDeprecatedLcAllProperty < Base
|
33
33
|
include RuboCop::Chef::CookbookHelpers
|
34
34
|
|
35
35
|
MSG = "The local resource's lc_all property has been deprecated and will be removed in Chef Infra Client 17"
|
36
36
|
|
37
37
|
def on_block(node)
|
38
38
|
match_property_in_resource?(:locale, 'lc_all', node) do |property|
|
39
|
-
add_offense(property,
|
39
|
+
add_offense(property, message: MSG, severity: :warning)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -31,10 +31,12 @@ module RuboCop
|
|
31
31
|
# property :config_file, String, name_property: true
|
32
32
|
# attribute :config_file, String, name_attribute: true
|
33
33
|
#
|
34
|
-
class NamePropertyWithDefaultValue <
|
34
|
+
class NamePropertyWithDefaultValue < Base
|
35
35
|
include RangeHelp
|
36
|
+
extend AutoCorrector
|
36
37
|
|
37
38
|
MSG = "A resource property can't be marked as a name_property and also have a default value. This will fail in Chef Infra Client 13 or later."
|
39
|
+
RESTRICT_ON_SEND = [:attribute, :property].freeze
|
38
40
|
|
39
41
|
# match on a property or attribute that has any name and any type and a hash that
|
40
42
|
# contains name_property/name_attribute true and any default value. These are wrapped in
|
@@ -44,14 +46,8 @@ module RuboCop
|
|
44
46
|
PATTERN
|
45
47
|
|
46
48
|
def on_send(node)
|
47
|
-
name_property_with_default?(node) do
|
48
|
-
add_offense(node,
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def autocorrect(node)
|
53
|
-
lambda do |corrector|
|
54
|
-
name_property_with_default?(node) do |default|
|
49
|
+
name_property_with_default?(node) do |default|
|
50
|
+
add_offense(node, message: MSG, severity: :warning) do |corrector|
|
55
51
|
range = range_with_surrounding_comma(range_with_surrounding_space(range: default.loc.expression, side: :left), :left)
|
56
52
|
corrector.remove(range)
|
57
53
|
end
|
@@ -37,7 +37,9 @@ module RuboCop
|
|
37
37
|
# node['platform_version']
|
38
38
|
# node['hostname']
|
39
39
|
#
|
40
|
-
class NodeMethodsInsteadofAttributes <
|
40
|
+
class NodeMethodsInsteadofAttributes < Base
|
41
|
+
extend AutoCorrector
|
42
|
+
|
41
43
|
MSG = 'Use node attributes to access Ohai data instead of node methods, which were deprecated in Chef Infra Client 13.'
|
42
44
|
|
43
45
|
def_node_matcher :node_ohai_methods?, <<-PATTERN
|
@@ -46,13 +48,9 @@ module RuboCop
|
|
46
48
|
|
47
49
|
def on_send(node)
|
48
50
|
node_ohai_methods?(node) do
|
49
|
-
add_offense(node
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
def autocorrect(node)
|
54
|
-
lambda do |corrector|
|
55
|
-
corrector.replace(node.loc.expression, "node['#{node.method_name}']")
|
51
|
+
add_offense(node.loc.selector, message: MSG, severity: :warning) do |corrector|
|
52
|
+
corrector.replace(node.loc.expression, "node['#{node.method_name}']")
|
53
|
+
end
|
56
54
|
end
|
57
55
|
end
|
58
56
|
|
@@ -30,7 +30,9 @@ module RuboCop
|
|
30
30
|
# # good
|
31
31
|
# node.normal['foo'] = true
|
32
32
|
#
|
33
|
-
class NodeSet <
|
33
|
+
class NodeSet < Base
|
34
|
+
extend AutoCorrector
|
35
|
+
|
34
36
|
MSG = 'Do not use node.set. Replace with node.normal to keep identical behavior.'
|
35
37
|
|
36
38
|
def_node_matcher :node_set?, <<-PATTERN
|
@@ -39,13 +41,9 @@ module RuboCop
|
|
39
41
|
|
40
42
|
def on_send(node)
|
41
43
|
node_set?(node) do
|
42
|
-
add_offense(node
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
def autocorrect(node)
|
47
|
-
lambda do |corrector|
|
48
|
-
corrector.replace(node.loc.selector, 'normal')
|
44
|
+
add_offense(node.loc.selector, message: MSG, severity: :warning) do |corrector|
|
45
|
+
corrector.replace(node.loc.selector, 'normal')
|
46
|
+
end
|
49
47
|
end
|
50
48
|
end
|
51
49
|
end
|
@@ -30,7 +30,9 @@ module RuboCop
|
|
30
30
|
# # good
|
31
31
|
# node.normal_unless['foo'] = true
|
32
32
|
#
|
33
|
-
class NodeSetUnless <
|
33
|
+
class NodeSetUnless < Base
|
34
|
+
extend AutoCorrector
|
35
|
+
|
34
36
|
MSG = 'Do not use node.set_unless. Replace with node.normal_unless to keep identical behavior.'
|
35
37
|
|
36
38
|
def_node_matcher :node_set_unless?, <<-PATTERN
|
@@ -39,13 +41,9 @@ module RuboCop
|
|
39
41
|
|
40
42
|
def on_send(node)
|
41
43
|
node_set_unless?(node) do
|
42
|
-
add_offense(node
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
def autocorrect(node)
|
47
|
-
lambda do |corrector|
|
48
|
-
corrector.replace(node.loc.selector, 'normal_unless')
|
44
|
+
add_offense(node.loc.selector, message: MSG, severity: :warning) do |corrector|
|
45
|
+
corrector.replace(node.loc.selector, 'normal_unless')
|
46
|
+
end
|
49
47
|
end
|
50
48
|
end
|
51
49
|
end
|