cookstyle 7.11.1 → 7.12.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/config/cookstyle.yml +27 -8
  3. data/lib/cookstyle/version.rb +1 -1
  4. data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +2 -2
  5. data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +10 -11
  6. data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +1 -2
  7. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +1 -1
  8. data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +0 -1
  9. data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +0 -1
  10. data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +9 -10
  11. data/lib/rubocop/cop/chef/correctness/node_normal.rb +2 -6
  12. data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +2 -6
  13. data/lib/rubocop/cop/chef/correctness/node_save.rb +1 -3
  14. data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +1 -2
  15. data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +1 -1
  16. data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +1 -3
  17. data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +0 -1
  18. data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +0 -1
  19. data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +1 -1
  20. data/lib/rubocop/cop/chef/correctness/service_resource.rb +0 -1
  21. data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +0 -1
  22. data/lib/rubocop/cop/chef/correctness/tmp_path.rb +1 -2
  23. data/lib/rubocop/cop/chef/deprecation/cb_depends_on_self.rb +11 -12
  24. data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +2 -3
  25. data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +1 -2
  26. data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +1 -2
  27. data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +2 -3
  28. data/lib/rubocop/cop/chef/deprecation/chef_shellout.rb +2 -5
  29. data/lib/rubocop/cop/chef/deprecation/chef_sugar_helpers.rb +22 -23
  30. data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +1 -2
  31. data/lib/rubocop/cop/chef/deprecation/cheffile.rb +2 -3
  32. data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +0 -1
  33. data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +1 -2
  34. data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +1 -2
  35. data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +1 -1
  36. data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +1 -1
  37. data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +1 -2
  38. data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +1 -2
  39. data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +1 -2
  40. data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +1 -2
  41. data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +1 -1
  42. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_actions.rb +1 -1
  43. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +1 -1
  44. data/lib/rubocop/cop/chef/deprecation/easy_install.rb +1 -2
  45. data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +2 -3
  46. data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +2 -3
  47. data/lib/rubocop/cop/chef/deprecation/erl_call.rb +1 -2
  48. data/lib/rubocop/cop/chef/deprecation/execute_path_property.rb +0 -1
  49. data/lib/rubocop/cop/chef/deprecation/execute_relative_creates_without_cwd.rb +0 -1
  50. data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +0 -1
  51. data/lib/rubocop/cop/chef/deprecation/hwrp_without_unified_mode_true.rb +86 -0
  52. data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +0 -1
  53. data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +0 -1
  54. data/lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb +0 -1
  55. data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +0 -1
  56. data/lib/rubocop/cop/chef/deprecation/resource_without_unified_mode_true.rb +84 -0
  57. data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +0 -1
  58. data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +0 -1
  59. data/lib/rubocop/cop/chef/deprecation/{ use_automatic_resource_name.rb → use_automatic_resource_name.rb} +0 -0
  60. data/lib/rubocop/cop/chef/deprecation/windows_package_installer_type_string.rb +0 -1
  61. data/lib/rubocop/cop/chef/effortless/berksfile.rb +0 -1
  62. data/lib/rubocop/cop/chef/effortless/chef_vault_used.rb +0 -2
  63. data/lib/rubocop/cop/chef/effortless/depends_chef_vault.rb +0 -2
  64. data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +0 -1
  65. data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +0 -1
  66. data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +0 -1
  67. data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +0 -1
  68. data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +0 -1
  69. data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +0 -1
  70. data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +0 -1
  71. data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +0 -1
  72. data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +0 -1
  73. data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +0 -1
  74. data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +37 -18
  75. data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +0 -1
  76. data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +0 -1
  77. data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +0 -1
  78. data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +0 -1
  79. data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +0 -1
  80. data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +0 -1
  81. data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +0 -1
  82. data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +0 -1
  83. data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +0 -1
  84. data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +0 -1
  85. data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +0 -1
  86. data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +0 -1
  87. data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +0 -1
  88. data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +0 -1
  89. data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +0 -1
  90. data/lib/rubocop/cop/chef/style/attribute_keys.rb +0 -1
  91. data/lib/rubocop/cop/chef/style/chef_whaaat.rb +0 -1
  92. data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +0 -1
  93. data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +0 -1
  94. data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +0 -1
  95. data/lib/rubocop/cop/chef/style/comments_format.rb +0 -1
  96. data/lib/rubocop/cop/chef/style/file_mode.rb +0 -1
  97. data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +0 -1
  98. metadata +5 -3
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Use the type property instead of the deprecated supports property in the chef_handler resource. The supports property was removed in chef_handler cookbook version 3.0 (June 2017) and Chef Infra Client 14.0.
22
+ # Use the type `property` instead of the deprecated `supports` property in the `chef_handler` resource. The `supports` property was removed in `chef_handler` cookbook version 3.0 (June 2017) and Chef Infra Client 14.0.
24
23
  #
25
24
  # @example
26
25
  #
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Chef::REST was removed in Chef Infra Client 13.
22
+ # The `Chef::REST` class was removed in Chef Infra Client 13.
24
23
  #
25
24
  # @example
26
25
  #
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Use delete_resource / edit_resource introduced in Chef Infra Client 12.10 instead of functionality in the deprecated chef-rewind gem
22
+ # Use `delete_resource` or `edit_resource` helpers introduced in Chef Infra Client 12.10 instead of functionality in the deprecated `chef-rewind` gem
24
23
  #
25
24
  # @example
26
25
  #
@@ -48,7 +47,7 @@ module RuboCop
48
47
  unwind: 'delete_resource',
49
48
  }.freeze
50
49
 
51
- MSG = 'Use delete_resource / edit_resource introduced in Chef Infra Client 12.10 instead of functionality in the deprecated chef-rewind gem'
50
+ MSG = 'Use delete_resource or edit_resource helpers introduced in Chef Infra Client 12.10 instead of functionality in the deprecated chef-rewind gem'
52
51
  RESTRICT_ON_SEND = [:chef_gem, :require, :rewind, :unwind].freeze
53
52
 
54
53
  def_node_matcher :rewind_gem_install?, <<-PATTERN
@@ -15,14 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Don't use deprecated Chef::ShellOut which was removed in Chef Infra Client 13.
24
- # Use Mixlib::ShellOut instead, which behaves identically or convert to the shell_out
25
- # helper provided in chef-utils.
22
+ # Don't use the deprecated `Chef::ShellOut` class which was removed in Chef Infra Client 13. Use the `Mixlib::ShellOut` class instead, which behaves identically or convert to the simpler `shell_out` helper.
26
23
  #
27
24
  # @example
28
25
  #
@@ -40,7 +37,7 @@ module RuboCop
40
37
  include RangeHelp
41
38
  extend AutoCorrector
42
39
 
43
- MSG = "Don't use deprecated Chef::ShellOut which was removed in Chef Infra Client 13. Use Mixlib::ShellOut instead, which behaves identically."
40
+ MSG = "Don't use the deprecated `Chef::ShellOut` class which was removed in Chef Infra Client 13. Use the `Mixlib::ShellOut` class instead, which behaves identically."
44
41
  RESTRICT_ON_SEND = [:new, :require, :include].freeze
45
42
 
46
43
  def_node_matcher :include_shellout?, <<-PATTERN
@@ -15,33 +15,32 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
- # Do not use legacy chef-sugar helper methods, which will not be moved into Chef Infra Client itself. For a complete set of chef-sugar helpers now shipping in Chef Infra Client itself see https://github.com/chef/chef/tree/master/chef-utils#getting-started
23
- #
24
- # @example
25
- #
26
- # #### incorrect
27
- # vagrant_key?
28
- # vagrant_domain?
29
- # vagrant_user?
30
- # require_chef_gem
31
- # best_ip_for(node)
32
- # nexus?
33
- # ios_xr?
34
- # ruby_20?
35
- # ruby_19?
36
- # includes_recipe?('foo::bar')
37
- # wrlinux?
38
- # dev_null
39
- # nexentacore_platform?
40
- # opensolaris_platform?
41
- # nexentacore?
42
- # opensolaris?
43
- #
44
21
  module Deprecations
22
+ # Do not use legacy chef-sugar helper methods, which will not be moved into Chef Infra Client itself. For a complete set of chef-sugar helpers now shipping in Chef Infra Client itself see https://github.com/chef/chef/tree/master/chef-utils#getting-started
23
+ #
24
+ # @example
25
+ #
26
+ # #### incorrect
27
+ # vagrant_key?
28
+ # vagrant_domain?
29
+ # vagrant_user?
30
+ # require_chef_gem
31
+ # best_ip_for(node)
32
+ # nexus?
33
+ # ios_xr?
34
+ # ruby_20?
35
+ # ruby_19?
36
+ # includes_recipe?('foo::bar')
37
+ # wrlinux?
38
+ # dev_null
39
+ # nexentacore_platform?
40
+ # opensolaris_platform?
41
+ # nexentacore?
42
+ # opensolaris?
43
+ #
45
44
  class ChefSugarHelpers < Base
46
45
  MSG = 'Do not use legacy chef-sugar helper methods, which will not be moved into Chef Infra Client itself. For a complete set of chef-sugar helpers now shipping in Chef Infra Client itself see https://github.com/chef/chef/tree/master/chef-utils#getting-started'
47
46
  RESTRICT_ON_SEND = [:vagrant_key?, :vagrant_domain?, :vagrant_user?, :require_chef_gem, :best_ip_for, :nexus?, :ios_xr?, :ruby_20?, :ruby_19?, :includes_recipe?, :wrlinux?, :dev_null, :nexentacore_platform?, :opensolaris_platform?, :nexentacore?, :opensolaris?].freeze
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Chef Workstation 0.8 and later renamed the ChefDK module used when writing custom cookbook generators from ChefDK to ChefCLI. For compatibility with the latest Chef Workstation releases you'll need to reference the new class names.
22
+ # Chef Workstation 0.8 and later renamed the `ChefDK` module used when writing custom cookbook generators from `ChefDK` to `ChefCLI`. For compatibility with the latest Chef Workstation releases you'll need to reference the new class names.
24
23
  #
25
24
  # @example
26
25
  #
@@ -15,13 +15,12 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
- # The Librarian-Chef depsolving project is no longer maintained and a Cheffile should not be used for cookbook depsolving. Consider using Policyfiles instead. If the Policyfiles model is not compatible with your workflow you may find Berkshelf offers a more similar, and still supported, experience to Librarian-Chef.
23
- #
24
21
  module Deprecations
22
+ # The Librarian-Chef depsolving project is no longer maintained and a Cheffile should not be used for cookbook depsolving. Consider using Policyfiles instead. If the Policyfiles model is not compatible with your workflow you may find Berkshelf offers a more similar, and still supported, experience to Librarian-Chef.
23
+ #
25
24
  class Cheffile < Base
26
25
  include RangeHelp
27
26
 
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Use ChefSpec::SoloRunner or ChefSpec::ServerRunner instead of the deprecated ChefSpec::Runner. These new runners were introduced in ChefSpec 4.1 (Oct 2014).
22
+ # Use `ChefSpec::SoloRunner` or `ChefSpec::ServerRunner` instead of the deprecated `ChefSpec::Runner`. These new runners were introduced in ChefSpec 4.1 (Oct 2014).
24
23
  #
25
24
  # @example
26
25
  #
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Use the :remove action in the chocolatey_package resource instead of :uninstall which was removed in Chef Infra Client 14+
22
+ # Use the `:remove` action in the `chocolatey_package` resource instead of `:uninstall` which was removed in Chef Infra Client 14+.
24
23
  #
25
24
  # @example
26
25
  #
@@ -19,7 +19,7 @@ module RuboCop
19
19
  module Cop
20
20
  module Chef
21
21
  module Deprecations
22
- # Don't depend on the deprecated compat_resource cookbook made obsolete by Chef Infra Client 12.19+
22
+ # Don't depend on the deprecated `compat_resource` cookbook made obsolete by Chef Infra Client 12.19+.
23
23
  #
24
24
  # @example
25
25
  #
@@ -19,7 +19,7 @@ module RuboCop
19
19
  module Cop
20
20
  module Chef
21
21
  module Deprecations
22
- # Don't depend on the partial_search cookbook made obsolete by Chef Infra Client 13
22
+ # Don't depend on the `partial_search` cookbook made obsolete by Chef Infra Client 13.
23
23
  #
24
24
  # @example
25
25
  #
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Use currently supported platforms in ChefSpec listed at https://github.com/chefspec/fauxhai/blob/master/PLATFORMS.md. Fauxhai / ChefSpec will perform fuzzy matching on platform version so it's always best to be less specific ie. 10 instead of 10.3
22
+ # Use currently supported platforms in ChefSpec listed at https://github.com/chefspec/fauxhai/blob/master/PLATFORMS.md. Fauxhai / ChefSpec will perform fuzzy matching on platform version values so it's always best to be less specific ie. 10 instead of 10.3
24
23
  #
25
24
  # @example
26
25
  #
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Don't use deprecated Mixins no longer included in Chef Infra Client 14 and later
22
+ # Don't use deprecated Mixins no longer included in Chef Infra Client 14 and later.
24
23
  #
25
24
  # @example
26
25
  #
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Use provider_for_action or provides instead of the deprecated Chef::Platform methods in resources, which were removed in Chef Infra Client 13.
22
+ # Use `provider_for_action` or provides instead of the deprecated `Chef::Platform` methods in resources, which were removed in Chef Infra Client 13.
24
23
  #
25
24
  # @example
26
25
  #
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # The large number of shell_out helper methods in Chef Infra Client has been reduced to just shell_out and shell_out! methods. The legacy methods were removed in Chef Infra Client and cookbooks using these legacy helpers will need to be updated.
22
+ # The large number of `shell_out` helper methods in Chef Infra Client has been reduced to just `shell_out` and `shell_out!` methods. The legacy methods were removed in Chef Infra Client and cookbooks using these legacy helpers will need to be updated.
24
23
  #
25
24
  # @example
26
25
  #
@@ -19,7 +19,7 @@ module RuboCop
19
19
  module Cop
20
20
  module Chef
21
21
  module Deprecations
22
- # 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.
22
+ # 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.
23
23
  #
24
24
  # @example
25
25
  #
@@ -19,7 +19,7 @@ module RuboCop
19
19
  module Cop
20
20
  module Chef
21
21
  module Deprecations
22
- # With the release of Chef Infra Client 12.14 and the yum cookbook 3.0 the actions the yum_repository resource actions were renamed. The `add` action became `create` and `delete` became `remove` to better match other resources in Chef Infra Client.
22
+ # With the release of Chef Infra Client 12.14 and the yum cookbook 3.0 the actions the `yum_repository` resource actions were renamed. The `add` action became `create` and `delete` became `remove` to better match other resources in Chef Infra Client.
23
23
  #
24
24
  # @example
25
25
  #
@@ -19,7 +19,7 @@ module RuboCop
19
19
  module Cop
20
20
  module Chef
21
21
  module Deprecations
22
- # With the release of Chef Infra Client 12.14 and the yum cookbook 3.0 several properties in the yum_repository resource were renamed. url -> baseurl, keyurl -> gpgkey, and mirrorexpire -> mirror_expire.
22
+ # With the release of Chef Infra Client 12.14 and the yum cookbook 3.0 several properties in the `yum_repository` resource were renamed. `url` -> `baseurl`, `keyurl` -> `gpgkey`, and `mirrorexpire` -> `mirror_expire`.
23
23
  #
24
24
  # @example
25
25
  #
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Don't use the deprecated easy_install resource removed in Chef Infra Client 13
22
+ # Don't use the deprecated easy_install resource removed in Chef Infra Client 13.
24
23
  #
25
24
  # @example
26
25
  #
@@ -19,7 +19,7 @@ module RuboCop
19
19
  module Cop
20
20
  module Chef
21
21
  module Deprecations
22
- # The beta Audit Mode for 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.
22
+ # The beta Audit Mode for Chef Infra Client was removed in Chef Infra Client 15.0. Users should instead use InSpec and the audit cookbook or the Compliance Phase introduced in Chef Infra Client 17. See https://www.inspec.io/ for more information.
23
23
  #
24
24
  # @example
25
25
  #
@@ -31,9 +31,8 @@ module RuboCop
31
31
  # end
32
32
  # end
33
33
  # end
34
-
35
34
  class EOLAuditModeUsage < Base
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.'
35
+ MSG = 'The beta Audit Mode feature in Chef Infra Client was removed in Chef Infra Client 15.0.'
37
36
  RESTRICT_ON_SEND = [:control_group].freeze
38
37
 
39
38
  def_node_matcher :control_group?, '(send nil? :control_group ...)'
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Make sure ignore_failure is used instead of epic_fail
22
+ # Use `ignore_failure` in resources to continue when failures occur instead of the deprecated `epic_fail` property.
24
23
  #
25
24
  # @example
26
25
  #
@@ -37,7 +36,7 @@ module RuboCop
37
36
  class EpicFail < Base
38
37
  extend AutoCorrector
39
38
 
40
- MSG = 'Use ignore_failure method instead of the deprecated epic_fail method'
39
+ MSG = 'Use `ignore_failure` in resources to continue when failures occur instead of the deprecated `epic_fail` property'
41
40
  RESTRICT_ON_SEND = [:epic_fail].freeze
42
41
 
43
42
  def on_send(node)
@@ -15,12 +15,11 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
22
21
  module Deprecations
23
- # Don't use the deprecated erl_call resource
22
+ # Don't use the deprecated `erl_call` resource removed in Chef Infra Client 13."
24
23
  #
25
24
  # @example
26
25
  #
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  module RuboCop
20
19
  module Cop
21
20
  module Chef
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
+ # Author:: Tim Smith (<tsmith@chef.io>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Deprecations
22
+ # Chef Infra Client 15.3 and later include a new Unified Mode that simplies the execution of resoures by replace the traditional compile and converge phases with a single phase. Unified mode simplies writing advanced resources and avoids confusing errors that often occur when mixing ruby and Chef Infra resources. Chef Infra Client 17.0 and later will beging warning that `unified_mode true` should be set in all resources to validate that they will continue to function in Chef Infra Client 18.0 (April 2022) when Unified Mode becomes the default.
23
+ #
24
+ # @example
25
+ #
26
+ # #### incorrect
27
+ # class Chef
28
+ # class Resource
29
+ # class UlimitRule < Chef::Resource
30
+ # provides :ulimit_rule
31
+ #
32
+ # property :type, [Symbol, String], required: true
33
+ # property :item, [Symbol, String], required: true
34
+ #
35
+ # # additional resource code
36
+ # end
37
+ # end
38
+ # end
39
+ #
40
+ # #### correct
41
+ # class Chef
42
+ # class Resource
43
+ # class UlimitRule < Chef::Resource
44
+ # provides :ulimit_rule
45
+ # unified_mode true
46
+ #
47
+ # property :type, [Symbol, String], required: true
48
+ # property :item, [Symbol, String], required: true
49
+ #
50
+ # # additional resource code
51
+ # end
52
+ # end
53
+ # end
54
+ #
55
+ class HWRPWithoutUnifiedTrue < Base
56
+ extend TargetChefVersion
57
+
58
+ minimum_target_chef_version '15.3'
59
+
60
+ MSG = 'Set `unified_mode true` in Chef Infra Client 15.3+ HWRP style custom resources to ensure they work correctly in Chef Infra Client 18 (April 2022) when Unified Mode becomes the default.'
61
+
62
+ def_node_matcher :HWRP?, <<-PATTERN
63
+ (class
64
+ (const nil? :Chef) nil?
65
+ (class
66
+ (const nil? :Resource) nil?
67
+ $(class
68
+ (const nil? ... )
69
+ (const
70
+ (const nil? :Chef) :Resource)
71
+ (begin ... ))))
72
+ PATTERN
73
+
74
+ def_node_search :unified_mode?, '(send nil? :unified_mode ...)'
75
+
76
+ def on_class(node)
77
+ return if unified_mode?(processed_source.ast)
78
+ HWRP?(node) do |inherit|
79
+ add_offense(inherit, message: MSG, severity: :warning)
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end