cookstyle 5.4.13 → 5.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/cookstyle.yml +231 -129
- data/lib/cookstyle.rb +1 -0
- data/lib/cookstyle/version.rb +1 -1
- data/lib/rubocop/chef/cookbook_helpers.rb +67 -0
- data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +34 -31
- data/lib/rubocop/cop/chef/correctness/cb_depends_on_self.rb +16 -14
- data/lib/rubocop/cop/chef/correctness/default_maintainer_metadata.rb +22 -20
- data/lib/rubocop/cop/chef/correctness/insecure_cookbook_url.rb +32 -30
- data/lib/rubocop/cop/chef/correctness/invalid_license_string.rb +454 -453
- data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +57 -57
- data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +18 -16
- data/lib/rubocop/cop/chef/correctness/name_property_and_required.rb +61 -59
- data/lib/rubocop/cop/chef/correctness/node_normal.rb +29 -27
- data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +29 -27
- data/lib/rubocop/cop/chef/correctness/node_save.rb +46 -0
- data/lib/rubocop/cop/chef/correctness/ohai_default_recipe.rb +47 -0
- data/lib/rubocop/cop/chef/correctness/property_with_default_and_required.rb +35 -33
- data/lib/rubocop/cop/chef/correctness/property_with_name_attribute.rb +29 -27
- data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +52 -0
- data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +51 -0
- data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +52 -0
- data/lib/rubocop/cop/chef/correctness/service_resource.rb +26 -24
- data/lib/rubocop/cop/chef/correctness/tmp_path.rb +30 -28
- data/lib/rubocop/cop/chef/deprecation/attribute_metadata.rb +22 -21
- data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +56 -0
- data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +58 -0
- data/lib/rubocop/cop/chef/deprecation/conflicts_metadata.rb +18 -16
- data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +21 -19
- data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +17 -15
- data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +17 -15
- data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +39 -37
- data/lib/rubocop/cop/chef/deprecation/easy_install.rb +15 -13
- data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +24 -22
- data/lib/rubocop/cop/chef/deprecation/erl_call.rb +15 -13
- data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +55 -0
- data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +24 -22
- data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +45 -0
- data/lib/rubocop/cop/chef/deprecation/long_description_metadata.rb +21 -19
- data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +55 -53
- data/lib/rubocop/cop/chef/deprecation/node_set.rb +27 -25
- data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +27 -25
- data/lib/rubocop/cop/chef/deprecation/provides_metadata.rb +18 -16
- data/lib/rubocop/cop/chef/deprecation/replaces_metadata.rb +18 -16
- data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +23 -21
- data/lib/rubocop/cop/chef/deprecation/suggests_metadata.rb +18 -16
- data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +56 -0
- data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +53 -0
- data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +51 -0
- data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +51 -0
- data/lib/rubocop/cop/chef/effortless/data_bags.rb +13 -11
- data/lib/rubocop/cop/chef/effortless/search_used.rb +13 -11
- data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +22 -20
- data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +31 -29
- data/lib/rubocop/cop/chef/modernize/build_essential.rb +25 -23
- data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +27 -25
- data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +25 -23
- data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +19 -17
- data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +27 -25
- data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +41 -0
- data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +21 -19
- data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +48 -0
- data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +51 -0
- data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +54 -0
- data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +25 -23
- data/lib/rubocop/cop/chef/modernize/resource_with_allowed_actions.rb +77 -0
- data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +37 -35
- data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +54 -0
- data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +25 -23
- data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +26 -24
- data/lib/rubocop/cop/chef/{effortless/node_save.rb → modernize/seven_zip_archive.rb} +16 -16
- data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +59 -0
- data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +20 -18
- data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +23 -21
- data/lib/rubocop/cop/chef/modernize/windows_version_helper.rb +20 -18
- data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +15 -13
- data/lib/rubocop/cop/chef/style/attribute_keys.rb +59 -57
- data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +14 -12
- data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +65 -63
- data/lib/rubocop/cop/chef/style/comments_format.rb +48 -45
- data/lib/rubocop/cop/chef/style/file_mode.rb +32 -30
- metadata +24 -9
- data/lib/rubocop/cop/chef/deprecation/respond_to_metadata.rb +0 -53
- data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +0 -45
- data/lib/rubocop/cop/chef/modernize/resource_with_allowed_action.rb +0 -75
- data/lib/rubocop/cop/chef/modernize/use_inline_resources.rb +0 -54
- data/lib/rubocop/cop/chef/modernize/xml_ruby_recipe.rb +0 -49
- data/lib/rubocop/cop/chef/modernize/yum_dnf_compat_recipe.rb +0 -49
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cookstyle
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.5.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thom May
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2019-
|
|
12
|
+
date: 2019-09-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rake
|
|
@@ -73,6 +73,7 @@ files:
|
|
|
73
73
|
- lib/cookstyle.rb
|
|
74
74
|
- lib/cookstyle/version.rb
|
|
75
75
|
- lib/rubocop/chef.rb
|
|
76
|
+
- lib/rubocop/chef/cookbook_helpers.rb
|
|
76
77
|
- lib/rubocop/chef/cookbook_only.rb
|
|
77
78
|
- lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb
|
|
78
79
|
- lib/rubocop/cop/chef/correctness/cb_depends_on_self.rb
|
|
@@ -84,11 +85,18 @@ files:
|
|
|
84
85
|
- lib/rubocop/cop/chef/correctness/name_property_and_required.rb
|
|
85
86
|
- lib/rubocop/cop/chef/correctness/node_normal.rb
|
|
86
87
|
- lib/rubocop/cop/chef/correctness/node_normal_unless.rb
|
|
88
|
+
- lib/rubocop/cop/chef/correctness/node_save.rb
|
|
89
|
+
- lib/rubocop/cop/chef/correctness/ohai_default_recipe.rb
|
|
87
90
|
- lib/rubocop/cop/chef/correctness/property_with_default_and_required.rb
|
|
88
91
|
- lib/rubocop/cop/chef/correctness/property_with_name_attribute.rb
|
|
92
|
+
- lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb
|
|
93
|
+
- lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb
|
|
94
|
+
- lib/rubocop/cop/chef/correctness/resource_with_none_action.rb
|
|
89
95
|
- lib/rubocop/cop/chef/correctness/service_resource.rb
|
|
90
96
|
- lib/rubocop/cop/chef/correctness/tmp_path.rb
|
|
91
97
|
- lib/rubocop/cop/chef/deprecation/attribute_metadata.rb
|
|
98
|
+
- lib/rubocop/cop/chef/deprecation/chef_rest.rb
|
|
99
|
+
- lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb
|
|
92
100
|
- lib/rubocop/cop/chef/deprecation/conflicts_metadata.rb
|
|
93
101
|
- lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb
|
|
94
102
|
- lib/rubocop/cop/chef/deprecation/depends_partial_search.rb
|
|
@@ -97,7 +105,9 @@ files:
|
|
|
97
105
|
- lib/rubocop/cop/chef/deprecation/easy_install.rb
|
|
98
106
|
- lib/rubocop/cop/chef/deprecation/epic_fail.rb
|
|
99
107
|
- lib/rubocop/cop/chef/deprecation/erl_call.rb
|
|
108
|
+
- lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb
|
|
100
109
|
- lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb
|
|
110
|
+
- lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb
|
|
101
111
|
- lib/rubocop/cop/chef/deprecation/long_description_metadata.rb
|
|
102
112
|
- lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb
|
|
103
113
|
- lib/rubocop/cop/chef/deprecation/node_set.rb
|
|
@@ -105,10 +115,12 @@ files:
|
|
|
105
115
|
- lib/rubocop/cop/chef/deprecation/provides_metadata.rb
|
|
106
116
|
- lib/rubocop/cop/chef/deprecation/replaces_metadata.rb
|
|
107
117
|
- lib/rubocop/cop/chef/deprecation/require_recipe.rb
|
|
108
|
-
- lib/rubocop/cop/chef/deprecation/respond_to_metadata.rb
|
|
109
118
|
- lib/rubocop/cop/chef/deprecation/suggests_metadata.rb
|
|
119
|
+
- lib/rubocop/cop/chef/deprecation/use_inline_resources.rb
|
|
120
|
+
- lib/rubocop/cop/chef/deprecation/user_supports_property.rb
|
|
121
|
+
- lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb
|
|
122
|
+
- lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb
|
|
110
123
|
- lib/rubocop/cop/chef/effortless/data_bags.rb
|
|
111
|
-
- lib/rubocop/cop/chef/effortless/node_save.rb
|
|
112
124
|
- lib/rubocop/cop/chef/effortless/search_used.rb
|
|
113
125
|
- lib/rubocop/cop/chef/modernize/apt_default_recipe.rb
|
|
114
126
|
- lib/rubocop/cop/chef/modernize/berksfile_source.rb
|
|
@@ -117,20 +129,23 @@ files:
|
|
|
117
129
|
- lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb
|
|
118
130
|
- lib/rubocop/cop/chef/modernize/execute_apt_update.rb
|
|
119
131
|
- lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb
|
|
132
|
+
- lib/rubocop/cop/chef/modernize/libarchive_file.rb
|
|
120
133
|
- lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb
|
|
121
|
-
- lib/rubocop/cop/chef/modernize/
|
|
134
|
+
- lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb
|
|
135
|
+
- lib/rubocop/cop/chef/modernize/powershell_install_package.rb
|
|
136
|
+
- lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb
|
|
122
137
|
- lib/rubocop/cop/chef/modernize/resource_set_or_return.rb
|
|
123
|
-
- lib/rubocop/cop/chef/modernize/
|
|
138
|
+
- lib/rubocop/cop/chef/modernize/resource_with_allowed_actions.rb
|
|
124
139
|
- lib/rubocop/cop/chef/modernize/resource_with_attributes.rb
|
|
140
|
+
- lib/rubocop/cop/chef/modernize/respond_to_metadata.rb
|
|
125
141
|
- lib/rubocop/cop/chef/modernize/respond_to_provides.rb
|
|
126
142
|
- lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb
|
|
127
|
-
- lib/rubocop/cop/chef/modernize/
|
|
143
|
+
- lib/rubocop/cop/chef/modernize/seven_zip_archive.rb
|
|
144
|
+
- lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb
|
|
128
145
|
- lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb
|
|
129
146
|
- lib/rubocop/cop/chef/modernize/windows_default_recipe.rb
|
|
130
147
|
- lib/rubocop/cop/chef/modernize/windows_version_helper.rb
|
|
131
148
|
- lib/rubocop/cop/chef/modernize/windows_zipfile.rb
|
|
132
|
-
- lib/rubocop/cop/chef/modernize/xml_ruby_recipe.rb
|
|
133
|
-
- lib/rubocop/cop/chef/modernize/yum_dnf_compat_recipe.rb
|
|
134
149
|
- lib/rubocop/cop/chef/style/attribute_keys.rb
|
|
135
150
|
- lib/rubocop/cop/chef/style/comment_sentence_spacing.rb
|
|
136
151
|
- lib/rubocop/cop/chef/style/comments_copyright_format.rb
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: 2019, Chef Software, Inc.
|
|
3
|
-
# Author:: Tim Smith (<tsmith@chef.io>)
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
module RuboCop
|
|
18
|
-
module Cop
|
|
19
|
-
module Chef
|
|
20
|
-
# It is not longer necessary respond_to?(:foo) in metadata. This was used to support new metadata
|
|
21
|
-
# methods in Chef 11 and early versions of Chef 12.
|
|
22
|
-
#
|
|
23
|
-
# @example
|
|
24
|
-
#
|
|
25
|
-
# # bad
|
|
26
|
-
# chef_version '>= 13' if respond_to?(:chef_version)
|
|
27
|
-
#
|
|
28
|
-
# # good
|
|
29
|
-
# chef_version '>= 13'
|
|
30
|
-
#
|
|
31
|
-
|
|
32
|
-
class RespondToInMetadata < Cop
|
|
33
|
-
MSG = 'It is no longer necessary to use respond_to? in metadata.rb in Chef 12.15 and later'.freeze
|
|
34
|
-
|
|
35
|
-
def on_if(node)
|
|
36
|
-
if_respond_to?(node) do
|
|
37
|
-
add_offense(node, location: :expression, message: MSG, severity: :refactor)
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def_node_matcher :if_respond_to?, <<~PATTERN
|
|
42
|
-
(if (send nil? :respond_to? _ ) ... )
|
|
43
|
-
PATTERN
|
|
44
|
-
|
|
45
|
-
def autocorrect(node)
|
|
46
|
-
lambda do |corrector|
|
|
47
|
-
corrector.replace(node.loc.expression, node.children[1].source)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: 2019, Chef Software, Inc.
|
|
3
|
-
# Author:: Tim Smith (<tsmith@chef.io>)
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
module RuboCop
|
|
18
|
-
module Cop
|
|
19
|
-
module Chef
|
|
20
|
-
# The Ohai default recipe previously allowed a user to ship custom Ohai plugins to a system by including them
|
|
21
|
-
# in a directory in the Ohai cookbook. This functionality was replaced with the ohai_plugin resource, which
|
|
22
|
-
# should be used instead as it doesn't require forking the ohai cookbook.
|
|
23
|
-
#
|
|
24
|
-
# @example
|
|
25
|
-
#
|
|
26
|
-
# # bad
|
|
27
|
-
# include_recipe 'ohai::default'
|
|
28
|
-
# include_recipe 'ohai'
|
|
29
|
-
#
|
|
30
|
-
class IncludingOhaiDefaultRecipe < Cop
|
|
31
|
-
MSG = "Use the ohai_plugin resource to ship custom Ohai plugins instead of using the ohai::default recipe. If you're not shipping custom Ohai plugins, then you can remove this recipe entirely".freeze
|
|
32
|
-
|
|
33
|
-
def_node_matcher :ohai_recipe_usage?, <<-PATTERN
|
|
34
|
-
(send nil? :include_recipe (str {"ohai" "ohai::default"}))
|
|
35
|
-
PATTERN
|
|
36
|
-
|
|
37
|
-
def on_send(node)
|
|
38
|
-
ohai_recipe_usage?(node) do
|
|
39
|
-
add_offense(node, location: :expression, message: MSG, severity: :refactor)
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: 2019, Chef Software, Inc.
|
|
3
|
-
# Author:: Tim Smith (<tsmith@chef.io>)
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
module RuboCop
|
|
19
|
-
module Cop
|
|
20
|
-
module Chef
|
|
21
|
-
# In HWRPs and LWRPs it was necessary to define the allowed actions within the resource.
|
|
22
|
-
# In custom resources this is no longer necessary as Chef will determine it based on the
|
|
23
|
-
# actions defined in the resource.
|
|
24
|
-
#
|
|
25
|
-
# @example
|
|
26
|
-
#
|
|
27
|
-
# # bad
|
|
28
|
-
# property :something, String
|
|
29
|
-
#
|
|
30
|
-
# allowed_actions [:create, :remove]
|
|
31
|
-
# action :create do
|
|
32
|
-
# # some action code because we're in a custom resource
|
|
33
|
-
# end
|
|
34
|
-
#
|
|
35
|
-
# # also bad
|
|
36
|
-
# property :something, String
|
|
37
|
-
#
|
|
38
|
-
# actions [:create, :remove]
|
|
39
|
-
# action :create do
|
|
40
|
-
# # some action code because we're in a custom resource
|
|
41
|
-
# end
|
|
42
|
-
#
|
|
43
|
-
# # good
|
|
44
|
-
# property :something, String
|
|
45
|
-
#
|
|
46
|
-
# action :create do
|
|
47
|
-
# # some action code because we're in a custom resource
|
|
48
|
-
# end
|
|
49
|
-
#
|
|
50
|
-
class CustomResourceWithAllowedActions < Cop
|
|
51
|
-
MSG = "Custom Resources don't need to define the allowed actions with allowed_actions or actions methods".freeze
|
|
52
|
-
|
|
53
|
-
def_node_matcher :allowed_actions?, <<-PATTERN
|
|
54
|
-
(send nil? {:allowed_actions :actions} ... )
|
|
55
|
-
PATTERN
|
|
56
|
-
|
|
57
|
-
def_node_search :resource_actions?, <<-PATTERN
|
|
58
|
-
(block (send nil? :action ... ) ... )
|
|
59
|
-
PATTERN
|
|
60
|
-
|
|
61
|
-
def on_send(node)
|
|
62
|
-
allowed_actions?(node) do
|
|
63
|
-
add_offense(node, location: :expression, message: MSG, severity: :refactor) if resource_actions?(processed_source.ast)
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def autocorrect(node)
|
|
68
|
-
lambda do |corrector|
|
|
69
|
-
corrector.remove(node.loc.expression)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: 2019, Chef Software Inc.
|
|
3
|
-
# Author:: Tim Smith (<tsmith@chef.io>)
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
module RuboCop
|
|
18
|
-
module Cop
|
|
19
|
-
module Chef
|
|
20
|
-
# use_inline_resources became the default in Chef Infra Client 13+ and no longer needs
|
|
21
|
-
# to be called in resources
|
|
22
|
-
#
|
|
23
|
-
# @example
|
|
24
|
-
#
|
|
25
|
-
# # bad
|
|
26
|
-
# use_inline_resources
|
|
27
|
-
# use_inline_resources if defined?(use_inline_resources)
|
|
28
|
-
#
|
|
29
|
-
class UseInlineResourcesDefined < Cop
|
|
30
|
-
MSG = 'use_inline_resources is now the default for resources in Chef Infra Client 13+ and does not need to be specified.'.freeze
|
|
31
|
-
|
|
32
|
-
def on_send(node)
|
|
33
|
-
if node.method_name == :use_inline_resources
|
|
34
|
-
# don't alert on the use_inline_resources within the defined? check
|
|
35
|
-
# that would result in 2 alerts on the same line and wouldn't be useful
|
|
36
|
-
return if node.parent && node.parent.defined_type?
|
|
37
|
-
|
|
38
|
-
# catch the full offense if the method is gated like this: use_inline_resources if defined?(use_inline_resources)
|
|
39
|
-
if node.parent && node.parent.if_type? && node.parent.children.first.method_name == :defined?
|
|
40
|
-
node = node.parent
|
|
41
|
-
end
|
|
42
|
-
add_offense(node, location: :expression, message: MSG, severity: :refactor)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def autocorrect(node)
|
|
47
|
-
lambda do |corrector|
|
|
48
|
-
corrector.remove(node.loc.expression)
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: 2019, Chef Software, Inc.
|
|
3
|
-
# Author:: Tim Smith (<tsmith@chef.io>)
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
module RuboCop
|
|
18
|
-
module Cop
|
|
19
|
-
module Chef
|
|
20
|
-
# The xml::ruby recipe was used to install nokogiri into the Chef installation. Nokogiri is included
|
|
21
|
-
# in Chef Infra Client 12 and later so this recipe is no longer necessary.
|
|
22
|
-
#
|
|
23
|
-
# @example
|
|
24
|
-
#
|
|
25
|
-
# # bad
|
|
26
|
-
# include_recipe 'xml::ruby'
|
|
27
|
-
#
|
|
28
|
-
class IncludingXMLRubyRecipe < Cop
|
|
29
|
-
MSG = 'The xml::ruby recipe installs nokogiri which is included in Chef Infra Client 12 and later.'.freeze
|
|
30
|
-
|
|
31
|
-
def_node_matcher :xml_ruby_recipe?, <<-PATTERN
|
|
32
|
-
(send nil? :include_recipe (str "xml::ruby"))
|
|
33
|
-
PATTERN
|
|
34
|
-
|
|
35
|
-
def on_send(node)
|
|
36
|
-
xml_ruby_recipe?(node) do
|
|
37
|
-
add_offense(node, location: :expression, message: MSG, severity: :refactor)
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def autocorrect(node)
|
|
42
|
-
lambda do |corrector|
|
|
43
|
-
corrector.remove(node.loc.expression)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright:: 2019, Chef Software, Inc.
|
|
3
|
-
# Author:: Tim Smith (<tsmith@chef.io>)
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
#
|
|
17
|
-
module RuboCop
|
|
18
|
-
module Cop
|
|
19
|
-
module Chef
|
|
20
|
-
# Don't include the yum DNF compatibility recipe, which is no longer necessary
|
|
21
|
-
# as Chef Infra Client includes DNF package support
|
|
22
|
-
#
|
|
23
|
-
# @example
|
|
24
|
-
#
|
|
25
|
-
# # bad
|
|
26
|
-
# include_recipe 'yum::dnf_yum_compat'
|
|
27
|
-
#
|
|
28
|
-
class IncludingYumDNFCompatRecipe < Cop
|
|
29
|
-
MSG = 'Do not include the yum::dnf_yum_compat default recipe to install yum on dnf systems. Chef Infra Client now includes built in support for DNF packages.'.freeze
|
|
30
|
-
|
|
31
|
-
def_node_matcher :yum_dnf_compat_recipe_usage?, <<-PATTERN
|
|
32
|
-
(send nil? :include_recipe (str "yum::dnf_yum_compat"))
|
|
33
|
-
PATTERN
|
|
34
|
-
|
|
35
|
-
def on_send(node)
|
|
36
|
-
yum_dnf_compat_recipe_usage?(node) do
|
|
37
|
-
add_offense(node, location: :expression, message: MSG, severity: :refactor)
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def autocorrect(node)
|
|
42
|
-
lambda do |corrector|
|
|
43
|
-
corrector.remove(node.loc.expression)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|