puppet-syntax 2.5.0 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/CHANGELOG.md +17 -1
- data/README.md +5 -0
- data/lib/puppet-syntax.rb +9 -0
- data/lib/puppet-syntax/hiera.rb +1 -1
- data/lib/puppet-syntax/manifests.rb +1 -0
- data/lib/puppet-syntax/tasks/puppet-syntax.rb +2 -2
- data/lib/puppet-syntax/version.rb +1 -1
- data/spec/puppet-syntax/templates_spec.rb +9 -2
- data/spec/puppet-syntax_spec.rb +8 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed40e0315c9f5a3ae3f761b1d2af9779b1ab913e19057af9415bc88791a67d39
|
4
|
+
data.tar.gz: d4a7e69e7c1e57afe6d0d393469de33cb6c38fd683d985e1cdd9a1daa35317c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eddfdba6008c885abfefd649165d8aafa31fb920274f8a2cc5221a277bc3b789d637e998516618d066ee039d41032711da910524e39f39e233fd2eeb617b7ff6
|
7
|
+
data.tar.gz: baeedf5b248d065b73db5365ea11b31db5cab27a953a2158e7d09839e8e96230c26b8a652659bc33bc86f6be31fbf01a4ebd121c230d9d050064c9c4bffc9a33
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
|
3
|
+
## [v2.6.0](https://github.com/voxpupuli/puppet-syntax/tree/v2.6.0) (2019-10-05)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/voxpupuli/puppet-syntax/compare/v2.5.0...v2.6.0)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- add support for validating puppet plans \(fixes \#95, fixes \#96\) [\#97](https://github.com/voxpupuli/puppet-syntax/pull/97) ([slauger](https://github.com/slauger))
|
10
|
+
- Allow specifying file paths for manifests and templates too [\#87](https://github.com/voxpupuli/puppet-syntax/pull/87) ([lavagetto](https://github.com/lavagetto))
|
11
|
+
|
12
|
+
**Merged pull requests:**
|
13
|
+
|
14
|
+
- Test on ruby 2.6 [\#111](https://github.com/voxpupuli/puppet-syntax/pull/111) ([alexjfisher](https://github.com/alexjfisher))
|
15
|
+
- Adding KMS tags to allowed EYAML methods [\#105](https://github.com/voxpupuli/puppet-syntax/pull/105) ([craigwatson](https://github.com/craigwatson))
|
4
16
|
|
5
17
|
## [v2.5.0](https://github.com/voxpupuli/puppet-syntax/tree/v2.5.0) (2019-07-07)
|
6
18
|
|
@@ -10,6 +22,10 @@ All notable changes to this project will be documented in this file.
|
|
10
22
|
|
11
23
|
- Support puppet 6.5 [\#106](https://github.com/voxpupuli/puppet-syntax/pull/106) ([alexjfisher](https://github.com/alexjfisher))
|
12
24
|
|
25
|
+
**Fixed bugs:**
|
26
|
+
|
27
|
+
- search manifests outside of manifests directory [\#104](https://github.com/voxpupuli/puppet-syntax/issues/104)
|
28
|
+
|
13
29
|
## [v2.4.3](https://github.com/voxpupuli/puppet-syntax/tree/v2.4.3) (2019-02-09)
|
14
30
|
|
15
31
|
[Full Changelog](https://github.com/voxpupuli/puppet-syntax/compare/v2.4.2...v2.4.3)
|
data/README.md
CHANGED
@@ -51,6 +51,11 @@ To configure Puppet::Syntax, add any of the following settings to your `Rakefile
|
|
51
51
|
|
52
52
|
PuppetSyntax.hieradata_paths = ["**/data/**/*.yaml", "hieradata/**/*.yaml", "hiera*.yaml"]
|
53
53
|
|
54
|
+
* To configure specific paths for the Puppet syntax checks or for the templates checks, specify `manifests_paths` or `templates_paths` respectively. This is useful if you want to check specific paths only.
|
55
|
+
|
56
|
+
PuppetSyntax.manifests_paths = ["**/environments/future/*.pp"]
|
57
|
+
PuppetSyntax.templates_paths = ["**/modules/**/templates/*.erb"]
|
58
|
+
|
54
59
|
* To validate the syntax of code written for application orchestration, enable `app_management`:
|
55
60
|
|
56
61
|
PuppetSyntax.app_management = true
|
data/lib/puppet-syntax.rb
CHANGED
@@ -12,6 +12,13 @@ module PuppetSyntax
|
|
12
12
|
"hieradata/**/*.*{yaml,yml}",
|
13
13
|
"hiera*.*{yaml,yml}"
|
14
14
|
]
|
15
|
+
@manifests_paths = [
|
16
|
+
'**/*.pp'
|
17
|
+
]
|
18
|
+
@templates_paths = [
|
19
|
+
'**/templates/**/*.erb',
|
20
|
+
'**/templates/**/*.epp'
|
21
|
+
]
|
15
22
|
@fail_on_deprecation_notices = true
|
16
23
|
@app_management = Puppet.version.to_i >= 5 ? true : false
|
17
24
|
@check_hiera_keys = false
|
@@ -20,6 +27,8 @@ module PuppetSyntax
|
|
20
27
|
attr_accessor :exclude_paths,
|
21
28
|
:future_parser,
|
22
29
|
:hieradata_paths,
|
30
|
+
:manifests_paths,
|
31
|
+
:templates_paths,
|
23
32
|
:fail_on_deprecation_notices,
|
24
33
|
:epp_only,
|
25
34
|
:check_hiera_keys
|
data/lib/puppet-syntax/hiera.rb
CHANGED
@@ -56,7 +56,7 @@ module PuppetSyntax
|
|
56
56
|
method = 'PKCS7'
|
57
57
|
end
|
58
58
|
|
59
|
-
return "has unknown eyaml method #{method}" unless ['PKCS7','GPG'].include? method
|
59
|
+
return "has unknown eyaml method #{method}" unless ['PKCS7','GPG','GKMS','KMS'].include? method
|
60
60
|
return "has unpadded or truncated base64 data" unless base64.length % 4 == 0
|
61
61
|
|
62
62
|
# Base64#decode64 will silently ignore characters outside the alphabet,
|
@@ -64,6 +64,7 @@ module PuppetSyntax
|
|
64
64
|
def validate_manifest(file)
|
65
65
|
Puppet[:parser] = 'future' if PuppetSyntax.future_parser and Puppet.version.to_i < 4
|
66
66
|
Puppet[:app_management] = true if PuppetSyntax.app_management && (Puppet::Util::Package.versioncmp(Puppet.version, '4.3.0') >= 0 && Puppet.version.to_i < 5)
|
67
|
+
Puppet[:tasks] = true if Puppet::Util::Package.versioncmp(Puppet.version, '5.4.0') >= 0 and file.match(/.*plans\/.*\.pp$/)
|
67
68
|
Puppet::Face[:parser, :current].validate(file)
|
68
69
|
end
|
69
70
|
end
|
@@ -13,11 +13,11 @@ module PuppetSyntax
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def filelist_manifests
|
16
|
-
filelist(
|
16
|
+
filelist(PuppetSyntax.manifests_paths)
|
17
17
|
end
|
18
18
|
|
19
19
|
def filelist_templates
|
20
|
-
filelist(
|
20
|
+
filelist(PuppetSyntax.templates_paths)
|
21
21
|
end
|
22
22
|
|
23
23
|
def filelist_hiera_yaml
|
@@ -2,6 +2,13 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe PuppetSyntax::Templates do
|
4
4
|
let(:subject) { PuppetSyntax::Templates.new }
|
5
|
+
let(:conditional_warning_regex) do
|
6
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.6.0')
|
7
|
+
%r{2: warning: found `= literal' in conditional}
|
8
|
+
else
|
9
|
+
%r{2: warning: found = in conditional}
|
10
|
+
end
|
11
|
+
end
|
5
12
|
|
6
13
|
it 'should expect an array of files' do
|
7
14
|
expect { subject.check(nil) }.to raise_error(/Expected an array of files/)
|
@@ -34,7 +41,7 @@ describe PuppetSyntax::Templates do
|
|
34
41
|
res = subject.check(files)
|
35
42
|
|
36
43
|
expect(res.size).to eq(1)
|
37
|
-
expect(res[0]).to match(
|
44
|
+
expect(res[0]).to match(conditional_warning_regex)
|
38
45
|
end
|
39
46
|
|
40
47
|
it 'should read more than one valid file' do
|
@@ -50,7 +57,7 @@ describe PuppetSyntax::Templates do
|
|
50
57
|
|
51
58
|
expect(res.size).to eq(2)
|
52
59
|
expect(res[0]).to match(/2: syntax error, unexpected/)
|
53
|
-
expect(res[1]).to match(
|
60
|
+
expect(res[1]).to match(conditional_warning_regex)
|
54
61
|
end
|
55
62
|
|
56
63
|
it 'should ignore a TypeError' do
|
data/spec/puppet-syntax_spec.rb
CHANGED
@@ -44,4 +44,12 @@ describe PuppetSyntax do
|
|
44
44
|
expect(PuppetSyntax.epp_only).to eq(true)
|
45
45
|
end
|
46
46
|
|
47
|
+
it 'should support setting paths for manifests, templates and hiera' do
|
48
|
+
PuppetSyntax.hieradata_paths = []
|
49
|
+
expect(PuppetSyntax.hieradata_paths).to eq([])
|
50
|
+
PuppetSyntax.manifests_paths = ["**/environments/production/**/*.pp"]
|
51
|
+
expect(PuppetSyntax.manifests_paths).to eq(["**/environments/production/**/*.pp"])
|
52
|
+
PuppetSyntax.templates_paths = []
|
53
|
+
expect(PuppetSyntax.templates_paths).to eq([])
|
54
|
+
end
|
47
55
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-syntax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -142,7 +142,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
142
|
- !ruby/object:Gem::Version
|
143
143
|
version: '0'
|
144
144
|
requirements: []
|
145
|
-
|
145
|
+
rubyforge_project:
|
146
|
+
rubygems_version: 2.7.7
|
146
147
|
signing_key:
|
147
148
|
specification_version: 4
|
148
149
|
summary: Syntax checks for Puppet manifests, templates, and Hiera YAML
|