puppet-lint-wmf_styleguide-check 1.1.0 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0996980289ea98e58b4da21e94d46732a5fec1cda561ddcd979ec647c91db633'
|
4
|
+
data.tar.gz: d8b5d617cb4ba1f1765670171cf157b723d73428410b8f1e564d8f160f20a046
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8056b429179de7156ecdb3ccb09bad40c9c4ae0c487a2177ca8073b204e4de935da30ac993b3c94ebf896f0140f9bee36707cf045cfeb5e3617c34142debeb2
|
7
|
+
data.tar.gz: 96531a80875d9aa641a8a34ac3a541ab1ad75c0b4fb37228324c6312e2ba736749e3532de77bb6d8412ea5b3c5d973977f69f09a83d2ec10310d9cd3f028f9b4
|
@@ -280,7 +280,6 @@ end
|
|
280
280
|
|
281
281
|
def lookup_not_in_params(klass)
|
282
282
|
# Checks if a lookup call is not in a parameter declaration. Used to check profiles
|
283
|
-
|
284
283
|
# Any lookup call that is not inside a parameter declaration is a violation
|
285
284
|
tokens = klass.lookup_calls.reject do |token|
|
286
285
|
maybe_param = token.prev_code_token.prev_code_token
|
@@ -493,6 +492,17 @@ PuppetLint.new_check(:wmf_styleguide) do
|
|
493
492
|
# If we're not within a node definition, skip this token
|
494
493
|
next unless in_node_def
|
495
494
|
case token.type
|
495
|
+
when :REGEX
|
496
|
+
if !token.value.start_with?('^') || !token.value.end_with?('$')
|
497
|
+
msg = {
|
498
|
+
message: "wmf-style: regex node matching must match the whole string (^...$), got: #{token.value}",
|
499
|
+
line: token.line,
|
500
|
+
column: token.column,
|
501
|
+
token: token,
|
502
|
+
problem: 'node_regex'
|
503
|
+
}
|
504
|
+
notify :error, msg
|
505
|
+
end
|
496
506
|
when :LBRACE
|
497
507
|
title_tokens = tokens[start + 1..(i - 1)].select(&:node_def?) if braces_level.zero?
|
498
508
|
braces_level += 1
|
@@ -538,4 +548,15 @@ PuppetLint.new_check(:wmf_styleguide) do
|
|
538
548
|
check_node node
|
539
549
|
end
|
540
550
|
end
|
551
|
+
|
552
|
+
def fix_node_regex(problem)
|
553
|
+
problem[:token].value.insert(0, '^') unless problem[:token].value.start_with?('^')
|
554
|
+
problem[:token].value << '$' unless problem[:token].value.end_with?('$')
|
555
|
+
end
|
556
|
+
|
557
|
+
def fix(problem)
|
558
|
+
raise PuppetLint::NoFix unless problem[:problem] == 'node_regex'
|
559
|
+
method = "fix_#{problem[:problem]}"
|
560
|
+
send(method, problem) if respond_to? method
|
561
|
+
end
|
541
562
|
end
|
@@ -88,7 +88,7 @@ define foo::fixme ($a=hiera('something')) {
|
|
88
88
|
EOF
|
89
89
|
|
90
90
|
node_ok = <<-EOF
|
91
|
-
node /^test1
|
91
|
+
node /^test1.*\\.example\\.com$/ {
|
92
92
|
role(spare::system)
|
93
93
|
}
|
94
94
|
EOF
|
@@ -106,6 +106,30 @@ node 'fixme' {
|
|
106
106
|
}
|
107
107
|
EOF
|
108
108
|
|
109
|
+
node_regex_missing_start = <<-EOF
|
110
|
+
node /test1.*\\.example\\.com$/ {
|
111
|
+
role(spare::system)
|
112
|
+
}
|
113
|
+
EOF
|
114
|
+
|
115
|
+
node_regex_missing_end = <<-EOF
|
116
|
+
node /^test1.*\\.example\\.com/ {
|
117
|
+
role(spare::system)
|
118
|
+
}
|
119
|
+
EOF
|
120
|
+
|
121
|
+
node_regex_missing_both = <<-EOF
|
122
|
+
node /test1.*\\.example\\.com/ {
|
123
|
+
role(spare::system)
|
124
|
+
}
|
125
|
+
EOF
|
126
|
+
|
127
|
+
node_regex_fixed = <<-EOF
|
128
|
+
node /^test1.*\\.example\\.com$/ {
|
129
|
+
role(spare::system)
|
130
|
+
}
|
131
|
+
EOF
|
132
|
+
|
109
133
|
deprecation_ko = <<-EOF
|
110
134
|
define test() {
|
111
135
|
base::service_unit{ 'test2': }
|
@@ -240,10 +264,52 @@ describe 'wmf_styleguide' do
|
|
240
264
|
end
|
241
265
|
end
|
242
266
|
|
267
|
+
context 'node regex with start violation' do
|
268
|
+
let(:code) { node_regex_missing_start }
|
269
|
+
it 'should start the regex with ^' do
|
270
|
+
expect(problems).to contain_error('wmf-style: regex node matching must match the whole string (^...$), got: test1.*\\.example\\.com$')
|
271
|
+
end
|
272
|
+
end
|
273
|
+
context 'node regex with end violation' do
|
274
|
+
let(:code) { node_regex_missing_end }
|
275
|
+
it 'should end the regex with $' do
|
276
|
+
expect(problems).to contain_error('wmf-style: regex node matching must match the whole string (^...$), got: ^test1.*\\.example\\.com')
|
277
|
+
end
|
278
|
+
end
|
279
|
+
context 'node regex with start and end violations' do
|
280
|
+
let(:code) { node_regex_missing_both }
|
281
|
+
it 'should start the regex with ^ and end it with $' do
|
282
|
+
expect(problems).to contain_error('wmf-style: regex node matching must match the whole string (^...$), got: test1.*\\.example\\.com')
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
243
286
|
context 'defined type with deprecations' do
|
244
287
|
let(:code) { deprecation_ko }
|
245
288
|
it 'should not' do
|
246
289
|
expect(problems).to contain_error("wmf-style: 'test' should not include the deprecated define 'base::service_unit'")
|
247
290
|
end
|
248
291
|
end
|
292
|
+
|
293
|
+
context 'with fix enabled' do
|
294
|
+
before do
|
295
|
+
PuppetLint.configuration.fix = true
|
296
|
+
end
|
297
|
+
|
298
|
+
after do
|
299
|
+
PuppetLint.configuration.fix = false
|
300
|
+
end
|
301
|
+
|
302
|
+
context 'node regex with start violation' do
|
303
|
+
let(:code) { node_regex_missing_start }
|
304
|
+
it { expect(manifest).to eq(node_regex_fixed) }
|
305
|
+
end
|
306
|
+
context 'node regex with end violation' do
|
307
|
+
let(:code) { node_regex_missing_end }
|
308
|
+
it { expect(manifest).to eq(node_regex_fixed) }
|
309
|
+
end
|
310
|
+
context 'node regex with start and end violations' do
|
311
|
+
let(:code) { node_regex_missing_both }
|
312
|
+
it { expect(manifest).to eq(node_regex_fixed) }
|
313
|
+
end
|
314
|
+
end
|
249
315
|
end
|
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.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giuseppe Lavagetto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet-lint
|
@@ -163,11 +163,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
163
|
- !ruby/object:Gem::Version
|
164
164
|
version: '0'
|
165
165
|
requirements: []
|
166
|
-
|
167
|
-
rubygems_version: 2.7.6.2
|
166
|
+
rubygems_version: 3.2.5
|
168
167
|
signing_key:
|
169
168
|
specification_version: 4
|
170
169
|
summary: A puppet-lint plugin to check code adheres to the WMF coding guidelines
|
171
170
|
test_files:
|
172
|
-
- spec/puppet-lint/plugins/check_wmf_styleguide_check_spec.rb
|
173
171
|
- spec/spec_helper.rb
|
172
|
+
- spec/puppet-lint/plugins/check_wmf_styleguide_check_spec.rb
|