puppet-lint-global_resource-check 0.3.1 → 0.3.2
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/README.md +3 -2
- data/lib/puppet-lint/plugins/check_global_resource.rb +26 -30
- data/spec/puppet-lint/plugins/check_global_resource_spec.rb +5 -10
- data/spec/spec_helper.rb +9 -0
- metadata +47 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3340a27869cec4a76dc1db589d2bd788987bc86
|
4
|
+
data.tar.gz: 0023d95f505828fc2eaf8a33c570f60f8cb2f1f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a004b21c5f162e7d0db6b03c44b34870b37a07b75b0b120938231b74e12bd478991442b55b5fe4e2587728b193713625f9c9193764a23814d4d2b592caf8dba
|
7
|
+
data.tar.gz: cd9e1fe6442f7cd1cd4d8d66c3eb73eeb549d79e2057c5ae21221d669259703f4a737c0190ceaaeefd6b9416edcc5e51145f8846d1afe3901b8907e9c4fbd7fb
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# puppet-lint global resource check
|
2
2
|
|
3
3
|
[](https://travis-ci.org/ninech/puppet-lint-global_resource-check)
|
4
|
+
[](https://badge.fury.io/rb/puppet-lint-global_resource-check)
|
4
5
|
|
5
6
|
## Installation
|
6
7
|
|
@@ -8,13 +9,13 @@ To use this plugin, add the following like to the Gemfile in your Puppet code
|
|
8
9
|
base and run `bundle install`.
|
9
10
|
|
10
11
|
```ruby
|
11
|
-
gem 'puppet-lint-global_resource-check', '~>
|
12
|
+
gem 'puppet-lint-global_resource-check', '~> 0.3.0'
|
12
13
|
```
|
13
14
|
|
14
15
|
For puppet-lint version 1.1
|
15
16
|
|
16
17
|
```ruby
|
17
|
-
gem 'puppet-lint-global_resource-check', '~>
|
18
|
+
gem 'puppet-lint-global_resource-check', '~> 0.2.0'
|
18
19
|
```
|
19
20
|
|
20
21
|
## Usage
|
@@ -1,47 +1,43 @@
|
|
1
1
|
PuppetLint.new_check(:global_resource) do
|
2
2
|
def check
|
3
|
+
@secure = secure_ranges
|
3
4
|
|
5
|
+
check_for_global_resources
|
6
|
+
check_for_global_includes
|
7
|
+
end
|
8
|
+
|
9
|
+
def secure_ranges
|
4
10
|
secure = []
|
5
11
|
|
6
12
|
class_indexes.each { |c| secure << [c[:start], c[:end]] }
|
7
13
|
defined_type_indexes.each { |d| secure << [d[:start], d[:end]] }
|
8
14
|
node_indexes.each { |n| secure << [n[:start], n[:end]] }
|
9
15
|
|
16
|
+
secure
|
17
|
+
end
|
18
|
+
|
19
|
+
def check_for_global_resources
|
10
20
|
resource_indexes.each do |r|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
next if encap == 1
|
18
|
-
|
19
|
-
notify(:error, {
|
20
|
-
:message => "Resource #{r[:type].value} in global space",
|
21
|
-
:line => r[:type].line,
|
22
|
-
:column => r[:type].column,
|
23
|
-
})
|
21
|
+
next if @secure.any? { |s| s[0] < r[:start] && s[1] > r[:end] }
|
22
|
+
|
23
|
+
notify :error,
|
24
|
+
message: "Resource #{r[:type].value} in global space",
|
25
|
+
line: r[:type].line,
|
26
|
+
column: r[:type].column
|
24
27
|
end
|
28
|
+
end
|
25
29
|
|
30
|
+
def check_for_global_includes
|
26
31
|
tokens.each_index do |i|
|
27
32
|
token = tokens[i]
|
28
|
-
next unless token.type == :NAME
|
29
|
-
|
30
|
-
encap= 0
|
31
|
-
secure.each do |s|
|
32
|
-
if s[0] < i and s[1] > i
|
33
|
-
encap = 1
|
34
|
-
end
|
35
|
-
end
|
36
|
-
next if encap == 1
|
37
|
-
|
38
|
-
notify(:error, {
|
39
|
-
:message => "include #{token.next_code_token.value} in global space",
|
40
|
-
:line => token.line,
|
41
|
-
:column => token.column,
|
42
|
-
})
|
43
|
-
end
|
33
|
+
next unless token.type == :NAME && token.value == 'include'
|
44
34
|
|
45
|
-
|
35
|
+
next if @secure.any? { |s| s[0] < i && s[1] > i }
|
46
36
|
|
37
|
+
notify :error,
|
38
|
+
message: "include #{token.next_code_token.value} in global space",
|
39
|
+
line: token.line,
|
40
|
+
column: token.column
|
41
|
+
end
|
42
|
+
end
|
47
43
|
end
|
@@ -1,15 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'global_resource' do
|
4
|
-
|
5
|
-
before do
|
6
|
-
# Bugfix/Workaround for https://github.com/rodjek/puppet-lint/pull/569
|
7
|
-
PuppetLint::Data.instance_variable_set '@node_indexes', nil
|
8
|
-
end
|
9
|
-
|
10
4
|
context 'just a class' do
|
11
5
|
let(:code) { "class test { file { 'file': } }" }
|
12
|
-
|
6
|
+
|
13
7
|
it 'should not detect any problems' do
|
14
8
|
expect(problems).to have(0).problems
|
15
9
|
end
|
@@ -32,7 +26,9 @@ describe 'global_resource' do
|
|
32
26
|
end
|
33
27
|
|
34
28
|
context 'global file' do
|
35
|
-
let(:code)
|
29
|
+
let(:code) do
|
30
|
+
"file { 'file': } define test ($param = undef) { file { 'file': } }"
|
31
|
+
end
|
36
32
|
|
37
33
|
it 'should detect a problem' do
|
38
34
|
expect(problems).to have(1).problems
|
@@ -43,8 +39,7 @@ describe 'global_resource' do
|
|
43
39
|
let(:code) { "class test { file { 'file': } } \ninclude class" }
|
44
40
|
|
45
41
|
it 'should detect a problem' do
|
46
|
-
|
42
|
+
expect(problems).to have(1).problems
|
47
43
|
end
|
48
44
|
end
|
49
|
-
|
50
45
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,12 @@
|
|
1
1
|
require 'puppet-lint'
|
2
|
+
require 'simplecov'
|
3
|
+
require 'simplecov-console'
|
2
4
|
|
3
5
|
PuppetLint::Plugins.load_spec_helper
|
6
|
+
|
7
|
+
SimpleCov.formatter = SimpleCov::Formatter::Console
|
8
|
+
SimpleCov.start do
|
9
|
+
add_filter '/spec'
|
10
|
+
add_filter '.bundle'
|
11
|
+
add_filter '/vendor'
|
12
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-lint-global_resource-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marius Rieder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-14 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: '2.
|
19
|
+
version: '2.1'
|
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: '2.
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-json_expectations
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rake
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +94,34 @@ dependencies:
|
|
80
94
|
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov-console
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
83
125
|
description: " Extends puppet-lint to ensure that your manifests have no global
|
84
126
|
resources.\n"
|
85
127
|
email: marius.rieder@nine.ch
|
@@ -116,5 +158,5 @@ signing_key:
|
|
116
158
|
specification_version: 4
|
117
159
|
summary: puppet-lint global_resource check
|
118
160
|
test_files:
|
119
|
-
- spec/puppet-lint/plugins/check_global_resource_spec.rb
|
120
161
|
- spec/spec_helper.rb
|
162
|
+
- spec/puppet-lint/plugins/check_global_resource_spec.rb
|