puppet-lint-scheduled_resource_required-check 1.0.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.
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2b29c2214c6708dbe83ffa84d33d10c3a49a0fb03bfbd1689af2b5ad126b4a87
|
4
|
+
data.tar.gz: 0747a26d9b402dea0648758e669f0ca9e1f009e3c46ae4379c51c45bfbbef6b0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 95b191d6d7e4779983b37e207896ebdcd6c99ea2197aaf49844f5f8e284f36e57d48ae3644d073429cb232af6b56d7631d1883c360dc30b2f1f9588dfa28465e
|
7
|
+
data.tar.gz: e482b318704b4fb9c30a7b93ec120f193cb392e69606c8a1c14b9aa46f33d9c98dc47e078a1b5ddc6b23772920cf60a960062c8ace43f34abffd937294f4d80e
|
data/README.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
PuppetLint.new_check(:scheduled_resource_required) do
|
2
|
+
def check
|
3
|
+
resource_indexes.each do |resource|
|
4
|
+
if ['exec', 'package'].include? resource[:type].value
|
5
|
+
has_schedule_attr = false
|
6
|
+
resource[:tokens].each_with_index do |token|
|
7
|
+
if token.next_code_token
|
8
|
+
has_schedule_attr = true if token.value == 'schedule' and token.next_code_token.type == :FARROW
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
unless has_schedule_attr
|
13
|
+
notify :warning, {
|
14
|
+
:message => "expected schedule attribute on #{resource[:type].value} resource",
|
15
|
+
:line => resource[:tokens][-1].line,
|
16
|
+
:column => resource[:tokens][-1].column,
|
17
|
+
}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'scheduled_resource_required' do
|
4
|
+
context 'when exec resource has no schedule attribute' do
|
5
|
+
let(:code) do
|
6
|
+
<<-PUPPET
|
7
|
+
exec { 'test':
|
8
|
+
command => '/bin/true',
|
9
|
+
}
|
10
|
+
PUPPET
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should detect a problem' do
|
14
|
+
expect(problems).to contain_warning('expected schedule attribute on exec resource').on_line(3)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when exec resource has schedule attribute' do
|
19
|
+
let(:code) do
|
20
|
+
<<-PUPPET
|
21
|
+
exec { 'test':
|
22
|
+
command => '/bin/true',
|
23
|
+
schedule => 'maintenance_window',
|
24
|
+
}
|
25
|
+
PUPPET
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should not detect a problem' do
|
29
|
+
expect(problems).to be_empty
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'when package resource has no schedule attribute' do
|
34
|
+
let(:code) do
|
35
|
+
<<-PUPPET
|
36
|
+
package { 'httpd':
|
37
|
+
ensure => installed,
|
38
|
+
}
|
39
|
+
PUPPET
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should detect a problem' do
|
43
|
+
expect(problems).to contain_warning('expected schedule attribute on package resource').on_line(3)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'when package resource has schedule attribute' do
|
48
|
+
let(:code) do
|
49
|
+
<<-PUPPET
|
50
|
+
package { 'httpd':
|
51
|
+
ensure => installed,
|
52
|
+
schedule => 'maintenance_window',
|
53
|
+
}
|
54
|
+
PUPPET
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should not detect a problem' do
|
58
|
+
expect(problems).to be_empty
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'when exec and package resources have no schedule attribute' do
|
63
|
+
let(:code) do
|
64
|
+
<<-PUPPET
|
65
|
+
exec { 'test':
|
66
|
+
command => '/bin/true',
|
67
|
+
}
|
68
|
+
|
69
|
+
package { 'httpd':
|
70
|
+
ensure => installed,
|
71
|
+
}
|
72
|
+
PUPPET
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'should detect two problems' do
|
76
|
+
expect(problems).to have(2).problems
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context 'when another resource type (e.g. file) is missing schedule' do
|
81
|
+
let(:code) do
|
82
|
+
<<-PUPPET
|
83
|
+
file { '/tmp/test':
|
84
|
+
ensure => present,
|
85
|
+
}
|
86
|
+
PUPPET
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should not detect a problem' do
|
90
|
+
expect(problems).to be_empty
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
context 'when exec resource has "schedule" keyword, but it is not an attribute' do
|
95
|
+
let(:code) do
|
96
|
+
<<-PUPPET
|
97
|
+
exec { 'test':
|
98
|
+
command => 'schedule',
|
99
|
+
}
|
100
|
+
PUPPET
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should detect a problem' do
|
104
|
+
expect(problems).to contain_warning('expected schedule attribute on exec resource').on_line(3)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context 'when package resource has "schedule" keyword, but it is not an attribute' do
|
109
|
+
let(:code) do
|
110
|
+
<<-PUPPET
|
111
|
+
package { 'test':
|
112
|
+
command => 'schedule',
|
113
|
+
}
|
114
|
+
PUPPET
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'should detect a problem' do
|
118
|
+
expect(problems).to contain_warning('expected schedule attribute on package resource').on_line(3)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: puppet-lint-scheduled_resource_required-check
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Landon Connell
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-05-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: puppet-lint
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec-its
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec-collection_matchers
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
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'
|
83
|
+
description: " A puppet-lint plugin to check if resource types involved in installing
|
84
|
+
or uninstalling software (e.g. exec or package) have a schedule attribute associated
|
85
|
+
with them.\n"
|
86
|
+
email: landon.connell@wendys.com
|
87
|
+
executables: []
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- README.md
|
92
|
+
- lib/puppet-lint/plugins/check_scheduled_resource_required.rb
|
93
|
+
- spec/puppet-lint/plugins/check_scheduled_resource_required_spec.rb
|
94
|
+
- spec/spec_helper.rb
|
95
|
+
homepage: https://gitlab.com/wendys/retail-technology-puppet/puppet-lint-checks/scheduled-resource-required
|
96
|
+
licenses:
|
97
|
+
- MIT
|
98
|
+
metadata: {}
|
99
|
+
post_install_message:
|
100
|
+
rdoc_options: []
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
requirements: []
|
114
|
+
rubygems_version: 3.5.22
|
115
|
+
signing_key:
|
116
|
+
specification_version: 4
|
117
|
+
summary: A puppet-lint plugin to check if resource types involved in installing or
|
118
|
+
uninstalling software (e.g. exec or package) have a schedule attribute associated
|
119
|
+
with them.
|
120
|
+
test_files:
|
121
|
+
- spec/puppet-lint/plugins/check_scheduled_resource_required_spec.rb
|
122
|
+
- spec/spec_helper.rb
|