puppet-lint-global_resource-check 0.1.0
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.
data/README.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# puppet-lint global resource check
|
2
|
+
|
3
|
+
## Installation
|
4
|
+
|
5
|
+
To use this plugin, add the following like to the Gemfile in your Puppet code
|
6
|
+
base and run `bundle install`.
|
7
|
+
|
8
|
+
```ruby
|
9
|
+
gem 'puppet-lint-global_resource-check'
|
10
|
+
```
|
11
|
+
|
12
|
+
## Usage
|
13
|
+
|
14
|
+
This plugin provides a new check to `puppet-lint`.
|
15
|
+
|
16
|
+
### global_resource
|
17
|
+
|
18
|
+
**--fix support: No**
|
19
|
+
|
20
|
+
This check will raise a error for any global defines resource.
|
21
|
+
|
22
|
+
```
|
23
|
+
ERROR: Resource file in global space on line 19
|
24
|
+
```
|
25
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
PuppetLint.new_check(:global_resource) do
|
2
|
+
def check
|
3
|
+
|
4
|
+
secure = []
|
5
|
+
|
6
|
+
class_indexes.each { |c| secure << [c[:start], c[:end]] }
|
7
|
+
defined_type_indexes.each { |d| secure << [d[:start], d[:end]] }
|
8
|
+
|
9
|
+
# node_indexes will be in the next puppet-lint version
|
10
|
+
unless defined? node_indexes
|
11
|
+
node_indexes = PuppetLint::Data.definition_indexes(:NODE)
|
12
|
+
end
|
13
|
+
node_indexes.each { |n| secure << [n[:start], n[:end]] }
|
14
|
+
|
15
|
+
resource_indexes.each do |r|
|
16
|
+
encap = 0
|
17
|
+
secure.each do |s|
|
18
|
+
if s[0] < r[:start] and s[1] > r[:end]
|
19
|
+
encap = 1
|
20
|
+
end
|
21
|
+
end
|
22
|
+
next if encap == 1
|
23
|
+
|
24
|
+
notify(:error, {
|
25
|
+
:message => "Resource #{r[:type].value} in global space",
|
26
|
+
:line => r[:type].line,
|
27
|
+
:column => r[:type].column,
|
28
|
+
})
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'global_resource' do
|
4
|
+
|
5
|
+
context 'just a class' do
|
6
|
+
let(:code) { "class test { file { 'file': } }" }
|
7
|
+
|
8
|
+
it 'should not detect any problems' do
|
9
|
+
expect(problems).to have(0).problems
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'just a define' do
|
14
|
+
let(:code) { "define test ($param = undef) { file { 'file': } }" }
|
15
|
+
|
16
|
+
it 'should not detect any problems' do
|
17
|
+
expect(problems).to have(0).problems
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'allow node resources' do
|
22
|
+
let(:code) { "node 'test' { file { 'file': } }" }
|
23
|
+
|
24
|
+
it 'should not detect any problems' do
|
25
|
+
expect(problems).to have(0).problems
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'global file' do
|
30
|
+
let(:code) { "file { 'file': } define test ($param = undef) { file { 'file': } }" }
|
31
|
+
|
32
|
+
it 'should detect a problem' do
|
33
|
+
expect(problems).to have(1).problems
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: puppet-lint-global_resource-check
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Marius Rieder
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-03-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: puppet-lint
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rspec
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '3.0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '3.0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec-its
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec-collection_matchers
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rake
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
description: ! ' Extends puppet-lint to ensure that your manifests have no global
|
95
|
+
resources.
|
96
|
+
|
97
|
+
'
|
98
|
+
email: marius.rieder@nine.ch
|
99
|
+
executables: []
|
100
|
+
extensions: []
|
101
|
+
extra_rdoc_files: []
|
102
|
+
files:
|
103
|
+
- README.md
|
104
|
+
- lib/puppet-lint/plugins/check_global_resource.rb
|
105
|
+
- spec/puppet-lint/plugins/check_global_resource_spec.rb
|
106
|
+
- spec/spec_helper.rb
|
107
|
+
homepage: https://github.com/ninech/puppet-lint-global_resource-check
|
108
|
+
licenses:
|
109
|
+
- MIT
|
110
|
+
post_install_message:
|
111
|
+
rdoc_options: []
|
112
|
+
require_paths:
|
113
|
+
- lib
|
114
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
requirements: []
|
127
|
+
rubyforge_project:
|
128
|
+
rubygems_version: 1.8.23
|
129
|
+
signing_key:
|
130
|
+
specification_version: 3
|
131
|
+
summary: puppet-lint global_resource check
|
132
|
+
test_files:
|
133
|
+
- spec/puppet-lint/plugins/check_global_resource_spec.rb
|
134
|
+
- spec/spec_helper.rb
|