puppet-lint-wmf_styleguide-check 1.0.5 → 1.0.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02e709fa4e38aa92929077506d5cacdb8e3f17114bb75596224444f385f18aab
|
4
|
+
data.tar.gz: a392eead1036bdd3d1bcfd0546291d9c5f154b7a7b3797a30d0a8b7e70efa340
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51814c0df70fe7e80edff7c97bd89e9478a4dbc886ddff1d1bf82a536fa4a6a08759fce975826cc1d2fca0b100e3e66378f60ce07fb320cbc7536f6413b1dc8d
|
7
|
+
data.tar.gz: 18ad1c6221aca98d187ee93898d5aad4e820769a007e77332625bdbbb6418d47816b7002b89035e94f5b26daf3484f340b9f35b76ca6e443f378a6730c128b38
|
@@ -107,6 +107,11 @@ class PuppetResource
|
|
107
107
|
@resource[:tokens].select(&:hiera?)
|
108
108
|
end
|
109
109
|
|
110
|
+
def legacy_validate_calls
|
111
|
+
# Returns an array of all the tokens referencing calls to a stdlib legacy validate function
|
112
|
+
@resource[:tokens].select(&:legacy_validate?)
|
113
|
+
end
|
114
|
+
|
110
115
|
def included_classes
|
111
116
|
# Returns an array of all the classes included (with require/include)
|
112
117
|
@resource[:tokens].map(&:included_class).compact
|
@@ -150,6 +155,11 @@ class PuppetLint
|
|
150
155
|
function? && ['lookup'].include?(@value)
|
151
156
|
end
|
152
157
|
|
158
|
+
def legacy_validate?
|
159
|
+
# A function calling one of the legacy stdlib validate functions
|
160
|
+
function? && @value.start_with?('validate_')
|
161
|
+
end
|
162
|
+
|
153
163
|
def class_include?
|
154
164
|
# Check for include-like objects
|
155
165
|
@type == :NAME && ['include', 'require', 'contain'].include?(@value) && @next_code_token.type != :FARROW
|
@@ -274,6 +284,18 @@ def hiera_errors(tokens, klass)
|
|
274
284
|
end
|
275
285
|
end
|
276
286
|
|
287
|
+
def legacy_validate_errors(klass)
|
288
|
+
# Helper for printing errors nicely
|
289
|
+
klass.legacy_validate_calls.each do |token|
|
290
|
+
msg = {
|
291
|
+
message: "wmf-style: Found legacy function (#{token.value}) call in #{klass.type} '#{klass.name}'",
|
292
|
+
line: token.line,
|
293
|
+
column: token.column
|
294
|
+
}
|
295
|
+
notify :error, msg
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
277
299
|
def profile_illegal_include(klass)
|
278
300
|
# Check if a profile includes any class that's not allowed there.
|
279
301
|
# Allowed are: any other profile, or a class from the passwords module,
|
@@ -379,6 +401,7 @@ end
|
|
379
401
|
|
380
402
|
def check_deprecations(resource)
|
381
403
|
# Check the resource for declarations of deprecated defines
|
404
|
+
legacy_validate_errors resource
|
382
405
|
deprecated_defines = ['base::service_unit']
|
383
406
|
deprecated_defines.each do |deprecated|
|
384
407
|
resource.resource?(deprecated).each do |token|
|
@@ -19,6 +19,8 @@ class foo($t=hiera('foo::title')) {
|
|
19
19
|
notice($t)
|
20
20
|
include ::passwords::redis
|
21
21
|
class { 'bar': }
|
22
|
+
validate_foobar($param)
|
23
|
+
validate_re($param, '^.*$')
|
22
24
|
}
|
23
25
|
EOF
|
24
26
|
|
@@ -74,6 +76,8 @@ define_ko = <<-EOF
|
|
74
76
|
define foo::fixme ($a=hiera('something')) {
|
75
77
|
include ::foo
|
76
78
|
class { '::bar': }
|
79
|
+
validate_foobar($param)
|
80
|
+
validate_re($param, '^.*$')
|
77
81
|
}
|
78
82
|
EOF
|
79
83
|
|
@@ -131,6 +135,10 @@ describe 'wmf_styleguide' do
|
|
131
135
|
expect(problems).to contain_error("wmf-style: class 'foo' includes passwords::redis from another module").on_line(5).in_column(16)
|
132
136
|
expect(problems).to contain_error("wmf-style: class 'foo' declares class bar from another module").on_line(6).in_column(16)
|
133
137
|
end
|
138
|
+
it 'should create errors for validate_function' do
|
139
|
+
expect(problems).to contain_error("wmf-style: Found legacy function (validate_foobar) call in class 'foo'").on_line(7).in_column(8)
|
140
|
+
expect(problems).to contain_error("wmf-style: Found legacy function (validate_re) call in class 'foo'").on_line(8).in_column(8)
|
141
|
+
end
|
134
142
|
end
|
135
143
|
|
136
144
|
context 'profile with errors' do
|
@@ -172,6 +180,10 @@ describe 'wmf_styleguide' do
|
|
172
180
|
it 'should not include or define any class' do
|
173
181
|
expect(problems).to contain_error("wmf-style: defined type 'foo::fixme' declares class bar from another module").on_line(3)
|
174
182
|
end
|
183
|
+
it 'should create errors for validate_function' do
|
184
|
+
expect(problems).to contain_error("wmf-style: Found legacy function (validate_foobar) call in defined type 'foo::fixme'").on_line(4).in_column(8)
|
185
|
+
expect(problems).to contain_error("wmf-style: Found legacy function (validate_re) call in defined type 'foo::fixme'").on_line(5).in_column(8)
|
186
|
+
end
|
175
187
|
end
|
176
188
|
|
177
189
|
context 'node with no errors' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-lint-wmf_styleguide-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giuseppe Lavagetto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet-lint
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.4.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: git
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,6 +119,7 @@ description: |2
|
|
119
119
|
* Check for cross-module class inclusion
|
120
120
|
* Check for the use of the include keyword in profiles
|
121
121
|
* Check for wmf-deprecated resources usage
|
122
|
+
* Check for deprecated validate_* functions
|
122
123
|
email: lavagetto@gmail.com
|
123
124
|
executables: []
|
124
125
|
extensions: []
|
@@ -148,8 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
149
|
- !ruby/object:Gem::Version
|
149
150
|
version: '0'
|
150
151
|
requirements: []
|
151
|
-
|
152
|
-
rubygems_version: 2.7.6.2
|
152
|
+
rubygems_version: 3.0.3
|
153
153
|
signing_key:
|
154
154
|
specification_version: 4
|
155
155
|
summary: A puppet-lint plugin to check code adheres to the WMF coding guidelines
|