inspec 0.9.5 → 0.9.6

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.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -8
  3. data/README.md +8 -39
  4. data/Rakefile +74 -9
  5. data/bin/inspec +66 -10
  6. data/docs/ctl_inspec.rst +7 -1
  7. data/docs/inspec_and_friends.rst +1 -1
  8. data/docs/resources.rst +51 -45
  9. data/examples/README.md +7 -0
  10. data/examples/kitchen-ansible/.kitchen.yml +25 -0
  11. data/examples/kitchen-ansible/Gemfile +20 -0
  12. data/examples/kitchen-ansible/README.md +53 -0
  13. data/examples/kitchen-ansible/files/nginx.repo +6 -0
  14. data/examples/kitchen-ansible/tasks/main.yml +16 -0
  15. data/examples/kitchen-ansible/test/integration/default/default.yml +5 -0
  16. data/examples/{test-kitchen → kitchen-ansible}/test/integration/default/web_spec.rb +0 -0
  17. data/examples/{test-kitchen → kitchen-chef}/.kitchen.yml +1 -1
  18. data/examples/{test-kitchen → kitchen-chef}/Berksfile +0 -0
  19. data/examples/{test-kitchen → kitchen-chef}/Gemfile +1 -2
  20. data/examples/{test-kitchen → kitchen-chef}/README.md +1 -1
  21. data/examples/{test-kitchen → kitchen-chef}/metadata.rb +0 -0
  22. data/examples/{test-kitchen → kitchen-chef}/recipes/default.rb +0 -0
  23. data/examples/{test-kitchen → kitchen-chef}/recipes/nginx.rb +0 -0
  24. data/examples/kitchen-chef/test/integration/default/web_spec.rb +28 -0
  25. data/examples/kitchen-puppet/.kitchen.yml +22 -0
  26. data/examples/kitchen-puppet/Gemfile +21 -0
  27. data/examples/kitchen-puppet/Puppetfile +25 -0
  28. data/examples/kitchen-puppet/README.md +53 -0
  29. data/examples/kitchen-puppet/manifests/site.pp +33 -0
  30. data/examples/kitchen-puppet/metadata.json +11 -0
  31. data/examples/kitchen-puppet/test/integration/default/web_spec.rb +28 -0
  32. data/inspec.gemspec +2 -0
  33. data/lib/inspec/plugins/resource.rb +21 -0
  34. data/lib/inspec/shell.rb +73 -11
  35. data/lib/inspec/version.rb +1 -1
  36. data/lib/matchers/matchers.rb +43 -0
  37. data/lib/resources/apache_conf.rb +12 -9
  38. data/lib/resources/apt.rb +7 -0
  39. data/lib/resources/audit_policy.rb +6 -6
  40. data/lib/resources/auditd_conf.rb +6 -7
  41. data/lib/resources/auditd_rules.rb +9 -8
  42. data/lib/resources/bond.rb +6 -6
  43. data/lib/resources/bridge.rb +7 -0
  44. data/lib/resources/command.rb +10 -8
  45. data/lib/resources/csv.rb +6 -5
  46. data/lib/resources/directory.rb +6 -0
  47. data/lib/resources/etc_group.rb +9 -1
  48. data/lib/resources/file.rb +72 -61
  49. data/lib/resources/gem.rb +6 -4
  50. data/lib/resources/group.rb +7 -0
  51. data/lib/resources/host.rb +6 -0
  52. data/lib/resources/inetd_conf.rb +8 -8
  53. data/lib/resources/ini.rb +6 -6
  54. data/lib/resources/interface.rb +8 -8
  55. data/lib/resources/iptables.rb +6 -0
  56. data/lib/resources/json.rb +6 -5
  57. data/lib/resources/kernel_module.rb +6 -5
  58. data/lib/resources/kernel_parameter.rb +6 -4
  59. data/lib/resources/limits_conf.rb +6 -6
  60. data/lib/resources/login_def.rb +6 -0
  61. data/lib/resources/mysql_conf.rb +6 -0
  62. data/lib/resources/mysql_session.rb +7 -0
  63. data/lib/resources/npm.rb +6 -4
  64. data/lib/resources/ntp_conf.rb +7 -7
  65. data/lib/resources/oneget.rb +6 -0
  66. data/lib/resources/os.rb +8 -0
  67. data/lib/resources/os_env.rb +6 -0
  68. data/lib/resources/package.rb +8 -1
  69. data/lib/resources/parse_config.rb +14 -0
  70. data/lib/resources/passwd.rb +7 -0
  71. data/lib/resources/pip.rb +6 -0
  72. data/lib/resources/port.rb +22 -11
  73. data/lib/resources/postgres_conf.rb +6 -0
  74. data/lib/resources/postgres_session.rb +8 -0
  75. data/lib/resources/processes.rb +17 -1
  76. data/lib/resources/registry_key.rb +7 -0
  77. data/lib/resources/script.rb +11 -0
  78. data/lib/resources/security_policy.rb +6 -1
  79. data/lib/resources/service.rb +10 -0
  80. data/lib/resources/ssh_conf.rb +6 -0
  81. data/lib/resources/user.rb +9 -2
  82. data/lib/resources/windows_feature.rb +6 -0
  83. data/lib/resources/yaml.rb +6 -0
  84. data/lib/resources/yum.rb +7 -0
  85. data/lib/utils/find_files.rb +15 -7
  86. data/test/helper.rb +9 -0
  87. data/test/integration/.kitchen.yml +3 -0
  88. data/test/integration/test/integration/default/compare_matcher_spec.rb +19 -0
  89. data/test/integration/test/integration/default/etc_group.rb +13 -0
  90. data/test/integration/test/integration/default/os_spec.rb +13 -0
  91. data/test/integration/test/integration/default/port_spec.rb +1 -1
  92. data/test/unit/mock/cmd/find-apache2-conf-enabled +1 -0
  93. data/test/unit/mock/cmd/find-apache2-ports-conf +1 -0
  94. data/test/unit/mock/cmd/ps-aux +2 -0
  95. data/test/unit/mock/files/apache2.conf +14 -0
  96. data/test/unit/mock/files/ports.conf +6 -0
  97. data/test/unit/mock/files/serve-cgi-bin.conf +20 -0
  98. data/test/unit/resources/apache_conf_test.rb +31 -0
  99. data/test/unit/resources/file_test.rb +181 -0
  100. data/test/unit/resources/package_test.rb +9 -0
  101. data/test/unit/resources/port_test.rb +33 -13
  102. data/test/unit/resources/processes_test.rb +6 -0
  103. data/test/unit/resources/service_test.rb +10 -0
  104. data/test/unit/resources/user_test.rb +12 -0
  105. data/test/unit/utils/find_files_test.rb +23 -0
  106. metadata +61 -16
  107. data/bin/inspec.orig +0 -115
  108. data/lib/resources/.service.rb.swp +0 -0
  109. data/test/unit/mock/profiles/rules/metadata.rb +0 -2
  110. data/test/unit/mock/profiles/rules/test/test.rb +0 -6
@@ -0,0 +1,181 @@
1
+ require 'helper'
2
+ require 'inspec/resource'
3
+
4
+ def shared_file_permission_tests(method_under_test)
5
+ it 'returns false if the file does not exist' do
6
+ resource.stubs(:exist?).returns(false)
7
+ resource.send(method_under_test, nil, nil).must_equal(false)
8
+ end
9
+
10
+ it 'returns the value of #file_permission_granted?' do
11
+ resource.stubs(:exist?).returns(true)
12
+ resource.stubs(:file_permission_granted?).returns('test_result')
13
+ resource.send(method_under_test, nil, nil).must_equal('test_result')
14
+ end
15
+ end
16
+
17
+ describe Inspec::Resources::File do
18
+ let(:resource) { load_resource('file', '/fakepath/fakefile') }
19
+ let(:os) { stub(:[] => { 'family' => 'fakefamily' }) }
20
+ let(:inspec) { stub(os: os) }
21
+
22
+ before { resource.stubs(:inspec).returns(inspec) }
23
+
24
+ describe '#readable?' do
25
+ shared_file_permission_tests(:readable?)
26
+ end
27
+
28
+ describe '#writable?' do
29
+ shared_file_permission_tests(:writable?)
30
+ end
31
+
32
+ describe '#executable?' do
33
+ shared_file_permission_tests(:executable?)
34
+ end
35
+
36
+ describe '#to_s' do
37
+ it 'returns a properly formatted string' do
38
+ resource.to_s.must_equal('File /fakepath/fakefile')
39
+ end
40
+ end
41
+
42
+ describe '#file_permission_granted?' do
43
+ describe 'when not on a unix OS' do
44
+ it 'raises an exception' do
45
+ resource.stubs(:unix?).returns(false)
46
+
47
+ proc { resource.send(:file_permission_granted?, 'flag', nil, nil) }.must_raise(RuntimeError)
48
+ end
49
+ end
50
+
51
+ describe 'when on a unix OS' do
52
+ before do
53
+ resource.stubs(:unix?).returns(true)
54
+ end
55
+
56
+ describe 'when no user is provided' do
57
+ it 'checks file permission by mask' do
58
+ resource.expects(:check_file_permission_by_mask).with('usergroup', 'flag')
59
+ resource.send(:file_permission_granted?, 'flag', 'usergroup', nil)
60
+ end
61
+ end
62
+
63
+ describe 'when a user is provided' do
64
+ it 'checks file permission by user' do
65
+ resource.expects(:check_file_permission_by_user).with('user', 'flag')
66
+ resource.send(:file_permission_granted?, 'flag', nil, 'user')
67
+ end
68
+ end
69
+ end
70
+ end
71
+
72
+ describe '#check_file_permission_by_mask' do
73
+ describe 'when no mask is returned' do
74
+ let(:file) { stub(unix_mode_mask: nil) }
75
+
76
+ it 'raises an exception' do
77
+ file = stub(unix_mode_mask: nil)
78
+ resource.stubs(:file).returns(file)
79
+ proc { resource.send(:check_file_permission_by_mask, 'usergroup', 'flag') }.must_raise(RuntimeError)
80
+ end
81
+ end
82
+
83
+ describe 'when a mask is returned' do
84
+ describe 'when the bitwise AND returns a non-zero' do
85
+ let(:file) { stub(unix_mode_mask: 292, mode: 420) }
86
+ it 'returns true' do
87
+ resource.stubs(:file).returns(file)
88
+ resource.send(:check_file_permission_by_mask, 'usergroup', 'flag').must_equal(true)
89
+ end
90
+ end
91
+
92
+ describe 'when the bitwise AND returns zero' do
93
+ let(:file) { stub(unix_mode_mask: 73, mode: 420) }
94
+ it 'returns false' do
95
+ resource.stubs(:file).returns(file)
96
+ resource.send(:check_file_permission_by_mask, 'usergroup', 'flag').must_equal(false)
97
+ end
98
+ end
99
+ end
100
+ end
101
+
102
+ describe 'check_file_permission_by_user' do
103
+ describe 'when on linux' do
104
+ before do
105
+ resource.stubs(:linux?).returns(true)
106
+ end
107
+
108
+ it 'executes a properly formatted command' do
109
+ cmd = stub(exit_status: 0)
110
+ inspec.expects(:command).with('su -s /bin/sh -c "test -flag /fakepath/fakefile" user').returns(cmd)
111
+ resource.send(:check_file_permission_by_user, 'user', 'flag')
112
+ end
113
+
114
+ it 'returns true when the cmd exits 0' do
115
+ cmd = stub(exit_status: 0)
116
+ inspec.stubs(:command).returns(cmd)
117
+ resource.send(:check_file_permission_by_user, 'user', 'flag').must_equal(true)
118
+ end
119
+
120
+ it 'returns true when the cmd exits non-zero' do
121
+ cmd = stub(exit_status: 1)
122
+ inspec.stubs(:command).returns(cmd)
123
+ resource.send(:check_file_permission_by_user, 'user', 'flag').must_equal(false)
124
+ end
125
+ end
126
+
127
+ describe 'when on freebsd' do
128
+ before do
129
+ resource.stubs(:linux?).returns(false)
130
+ resource.stubs(:family).returns('freebsd')
131
+ end
132
+
133
+ it 'executes a properly formatted command' do
134
+ cmd = stub(exit_status: 0)
135
+ inspec.expects(:command).with('sudo -u user test -flag /fakepath/fakefile').returns(cmd)
136
+ resource.send(:check_file_permission_by_user, 'user', 'flag')
137
+ end
138
+
139
+ it 'returns true when the cmd exits 0' do
140
+ cmd = stub(exit_status: 0)
141
+ inspec.stubs(:command).returns(cmd)
142
+ resource.send(:check_file_permission_by_user, 'user', 'flag').must_equal(true)
143
+ end
144
+
145
+ it 'returns true when the cmd exits non-zero' do
146
+ cmd = stub(exit_status: 1)
147
+ inspec.stubs(:command).returns(cmd)
148
+ resource.send(:check_file_permission_by_user, 'user', 'flag').must_equal(false)
149
+ end
150
+ end
151
+
152
+ describe 'when not on linux or freebsd' do
153
+ before do
154
+ resource.stubs(:linux?).returns(false)
155
+ resource.stubs(:family).returns('fakefamily')
156
+ end
157
+
158
+ it 'returns an error string' do
159
+ resource.send(:check_file_permission_by_user, 'user', 'flag').must_equal('The `file` resource does not support `by_user` on your OS.')
160
+ end
161
+ end
162
+ end
163
+
164
+ describe '#usergroup_for' do
165
+ it 'returns "other" if "others" is provided' do
166
+ resource.send(:usergroup_for, 'others', nil).must_equal('other')
167
+ end
168
+
169
+ it 'returns "all" if no usergroup or user is specified' do
170
+ resource.send(:usergroup_for, nil, nil).must_equal('all')
171
+ end
172
+
173
+ it 'returns nil if the usergroup is nil and a user is specified' do
174
+ resource.send(:usergroup_for, nil, 'user').must_equal(nil)
175
+ end
176
+
177
+ it 'returns the passed-in usergroup if usergroup is not nil and user is nil' do
178
+ resource.send(:usergroup_for, 'mygroup', nil).must_equal('mygroup')
179
+ end
180
+ end
181
+ end
@@ -33,6 +33,15 @@ describe 'Inspec::Resources::Package' do
33
33
  _(resource.info).must_equal pkg
34
34
  end
35
35
 
36
+ # wrlinux
37
+ it 'verify wrlinux package parsing' do
38
+ resource = MockLoader.new(:wrlinux).load_resource('package', 'curl')
39
+ pkg = { name: 'curl', installed: true, version: '7.29.0', type: 'rpm' }
40
+ _(resource.installed?).must_equal true
41
+ _(resource.version).must_equal '7.29.0'
42
+ _(resource.info).must_equal pkg
43
+ end
44
+
36
45
  # windows
37
46
  it 'verify windows package parsing' do
38
47
  resource = MockLoader.new(:windows).load_resource('package', 'Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.6161')
@@ -9,38 +9,58 @@ describe 'Inspec::Resources::Port' do
9
9
  it 'verify port on Ubuntu 14.04' do
10
10
  resource = MockLoader.new(:ubuntu1404).load_resource('port', 22)
11
11
  _(resource.listening?).must_equal true
12
- _(resource.protocol).must_equal %w{ tcp tcp6 }
13
- _(resource.pid).must_equal [1]
14
- _(resource.process).must_equal ['sshd']
12
+ _(resource.protocols).must_equal %w{ tcp tcp6 }
13
+ _(resource.pids).must_equal [1]
14
+ _(resource.processes).must_equal ['sshd']
15
15
  end
16
16
 
17
17
  it 'verify port on MacOs x' do
18
18
  resource = MockLoader.new(:osx104).load_resource('port', 2022)
19
19
  _(resource.listening?).must_equal true
20
- _(resource.protocol).must_equal ['tcp']
21
- _(resource.process).must_equal ['VBoxHeadl']
20
+ _(resource.protocols).must_equal ['tcp']
21
+ _(resource.processes).must_equal ['VBoxHeadl']
22
22
  end
23
23
 
24
24
  it 'verify port on Windows' do
25
25
  resource = MockLoader.new(:windows).load_resource('port', 135)
26
26
  _(resource.listening?).must_equal true
27
- _(resource.protocol).must_equal ['tcp']
28
- _(resource.process).must_equal nil
27
+ _(resource.protocols).must_equal ['tcp']
28
+ _(resource.processes).must_equal nil
29
29
  end
30
30
 
31
31
  it 'verify port on FreeBSD' do
32
32
  resource = MockLoader.new(:freebsd10).load_resource('port', 22)
33
33
  _(resource.listening?).must_equal true
34
- _(resource.protocol).must_equal %w{ tcp6 tcp }
35
- _(resource.pid).must_equal [668]
36
- _(resource.process).must_equal ['sshd']
34
+ _(resource.protocols).must_equal %w{ tcp6 tcp }
35
+ _(resource.pids).must_equal [668]
36
+ _(resource.processes).must_equal ['sshd']
37
+ end
38
+
39
+ it 'verify port on wrlinux' do
40
+ resource = MockLoader.new(:wrlinux).load_resource('port', 22)
41
+ _(resource.listening?).must_equal true
42
+ _(resource.protocols).must_equal %w{ tcp tcp6 }
43
+ _(resource.processes).must_equal ['sshd']
37
44
  end
38
45
 
39
46
  it 'verify running on undefined' do
40
47
  resource = MockLoader.new(:undefined).load_resource('port', 22)
41
48
  _(resource.listening?).must_equal false
42
- _(resource.protocol).must_equal nil
43
- _(resource.pid).must_equal nil
44
- _(resource.process).must_equal nil
49
+ _(resource.protocols).must_equal nil
50
+ _(resource.pids).must_equal nil
51
+ _(resource.processes).must_equal nil
52
+ end
53
+
54
+ it 'verify port and interface on Ubuntu 14.04' do
55
+ resource = MockLoader.new(:ubuntu1404).load_resource('port', '0.0.0.0', 22)
56
+ _(resource.listening?).must_equal true
57
+ _(resource.protocols).must_equal %w{ tcp }
58
+ _(resource.pids).must_equal [1]
59
+ _(resource.processes).must_equal ['sshd']
60
+ end
61
+
62
+ it 'verify not listening port on interface on Ubuntu 14.04' do
63
+ resource = MockLoader.new(:ubuntu1404).load_resource('port', '127.0.0.1', 22)
64
+ _(resource.listening?).must_equal false
45
65
  end
46
66
  end
@@ -29,4 +29,10 @@ describe 'Inspec::Resources::Processes' do
29
29
 
30
30
  _(resource.list.length).must_equal 1
31
31
  end
32
+
33
+ it 'retrieves the users and states as arrays' do
34
+ resource = load_resource('processes', 'svc')
35
+ _(resource.users.sort).must_equal ['noot']
36
+ _(resource.states.sort).must_equal ['S', 'Ss']
37
+ end
32
38
  end
@@ -107,6 +107,16 @@ describe 'Inspec::Resources::Service' do
107
107
  _(resource.running?).must_equal true
108
108
  end
109
109
 
110
+ # wrlinux
111
+ it 'verify wrlinux package parsing' do
112
+ resource = MockLoader.new(:wrlinux).load_resource('service', 'sshd')
113
+ srv = { name: 'sshd', description: nil, installed: true, running: true, enabled: true, type: 'sysv' }
114
+ _(resource.info).must_equal srv
115
+ _(resource.installed?).must_equal true
116
+ _(resource.enabled?).must_equal true
117
+ _(resource.running?).must_equal true
118
+ end
119
+
110
120
  # unknown OS
111
121
  it 'verify package handling on unsupported os' do
112
122
  resource = MockLoader.new(:undefined).load_resource('service', 'dhcp')
@@ -56,6 +56,18 @@ describe 'Inspec::Resources::User' do
56
56
  _(resource.warndays).must_equal 7
57
57
  end
58
58
 
59
+ it 'read user on centos7' do
60
+ resource = MockLoader.new(:wrlinux).load_resource('user', 'root')
61
+ _(resource.exists?).must_equal true
62
+ _(resource.group).must_equal 'root'
63
+ _(resource.groups).must_equal ['root']
64
+ _(resource.home).must_equal '/root'
65
+ _(resource.shell).must_equal '/bin/bash'
66
+ _(resource.mindays).must_equal 0
67
+ _(resource.maxdays).must_equal 99999
68
+ _(resource.warndays).must_equal 7
69
+ end
70
+
59
71
  it 'read user on freebsd' do
60
72
  resource = MockLoader.new(:freebsd10).load_resource('user', 'root')
61
73
  _(resource.exists?).must_equal true
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+ # author: Stephan Renatus
3
+
4
+ require 'helper'
5
+
6
+ describe FindFiles do
7
+ let (:findfiles) do
8
+ class FindFilesTest
9
+ include FindFiles
10
+ def inspec
11
+ Inspec::Backend.create(backend: :mock)
12
+ end
13
+ end
14
+ FindFilesTest.new
15
+ end
16
+
17
+ describe '#find_files' do
18
+ it 'returns an array (of findings)' do
19
+ files = findfiles.find_files('/no/such/mock', type: 'file', depth: 1)
20
+ files.must_equal([])
21
+ end
22
+ end
23
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-25 00:00:00.000000000 Z
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: r-train
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: mocha
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.1'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.1'
139
153
  description: Validate Inspec compliance checks.
140
154
  email:
141
155
  - dominik.richter@gmail.com
@@ -153,21 +167,35 @@ files:
153
167
  - README.md
154
168
  - Rakefile
155
169
  - bin/inspec
156
- - bin/inspec.orig
157
170
  - docs/ctl_inspec.rst
158
171
  - docs/dsl_inspec.rst
159
172
  - docs/inspec_and_friends.rst
160
173
  - docs/readme.rst
161
174
  - docs/resources.rst
162
175
  - docs/template.rst
163
- - examples/test-kitchen/.kitchen.yml
164
- - examples/test-kitchen/Berksfile
165
- - examples/test-kitchen/Gemfile
166
- - examples/test-kitchen/README.md
167
- - examples/test-kitchen/metadata.rb
168
- - examples/test-kitchen/recipes/default.rb
169
- - examples/test-kitchen/recipes/nginx.rb
170
- - examples/test-kitchen/test/integration/default/web_spec.rb
176
+ - examples/README.md
177
+ - examples/kitchen-ansible/.kitchen.yml
178
+ - examples/kitchen-ansible/Gemfile
179
+ - examples/kitchen-ansible/README.md
180
+ - examples/kitchen-ansible/files/nginx.repo
181
+ - examples/kitchen-ansible/tasks/main.yml
182
+ - examples/kitchen-ansible/test/integration/default/default.yml
183
+ - examples/kitchen-ansible/test/integration/default/web_spec.rb
184
+ - examples/kitchen-chef/.kitchen.yml
185
+ - examples/kitchen-chef/Berksfile
186
+ - examples/kitchen-chef/Gemfile
187
+ - examples/kitchen-chef/README.md
188
+ - examples/kitchen-chef/metadata.rb
189
+ - examples/kitchen-chef/recipes/default.rb
190
+ - examples/kitchen-chef/recipes/nginx.rb
191
+ - examples/kitchen-chef/test/integration/default/web_spec.rb
192
+ - examples/kitchen-puppet/.kitchen.yml
193
+ - examples/kitchen-puppet/Gemfile
194
+ - examples/kitchen-puppet/Puppetfile
195
+ - examples/kitchen-puppet/README.md
196
+ - examples/kitchen-puppet/manifests/site.pp
197
+ - examples/kitchen-puppet/metadata.json
198
+ - examples/kitchen-puppet/test/integration/default/web_spec.rb
171
199
  - inspec.gemspec
172
200
  - lib/inspec.rb
173
201
  - lib/inspec/backend.rb
@@ -193,7 +221,6 @@ files:
193
221
  - lib/inspec/targets/zip.rb
194
222
  - lib/inspec/version.rb
195
223
  - lib/matchers/matchers.rb
196
- - lib/resources/.service.rb.swp
197
224
  - lib/resources/apache.rb
198
225
  - lib/resources/apache_conf.rb
199
226
  - lib/resources/apt.rb
@@ -272,13 +299,16 @@ files:
272
299
  - test/integration/cookbooks/os_prepare/recipes/service.rb
273
300
  - test/integration/test/integration/default/_debug_spec.rb
274
301
  - test/integration/test/integration/default/apt_spec.rb
302
+ - test/integration/test/integration/default/compare_matcher_spec.rb
275
303
  - test/integration/test/integration/default/csv_spec.rb
304
+ - test/integration/test/integration/default/etc_group.rb
276
305
  - test/integration/test/integration/default/file_spec.rb
277
306
  - test/integration/test/integration/default/group_spec.rb
278
307
  - test/integration/test/integration/default/ini_spec.rb
279
308
  - test/integration/test/integration/default/json_spec.rb
280
309
  - test/integration/test/integration/default/kernel_module_spec.rb
281
310
  - test/integration/test/integration/default/kernel_parameter_spec.rb
311
+ - test/integration/test/integration/default/os_spec.rb
282
312
  - test/integration/test/integration/default/package_spec.rb
283
313
  - test/integration/test/integration/default/port_spec.rb
284
314
  - test/integration/test/integration/default/registry_key_spec.rb
@@ -306,6 +336,8 @@ files:
306
336
  - test/unit/mock/cmd/dscl
307
337
  - test/unit/mock/cmd/env
308
338
  - test/unit/mock/cmd/etc-apt
339
+ - test/unit/mock/cmd/find-apache2-conf-enabled
340
+ - test/unit/mock/cmd/find-apache2-ports-conf
309
341
  - test/unit/mock/cmd/find-etc-rc-d-name-S
310
342
  - test/unit/mock/cmd/find-net-interface
311
343
  - test/unit/mock/cmd/gem-list-local-a-q-rubocop
@@ -348,6 +380,7 @@ files:
348
380
  - test/unit/mock/cmd/systemctl-show-all-sshd
349
381
  - test/unit/mock/cmd/win32_product
350
382
  - test/unit/mock/cmd/yum-repolist-all
383
+ - test/unit/mock/files/apache2.conf
351
384
  - test/unit/mock/files/auditd.conf
352
385
  - test/unit/mock/files/bond0
353
386
  - test/unit/mock/files/etcgroup
@@ -361,15 +394,16 @@ files:
361
394
  - test/unit/mock/files/ntp.conf
362
395
  - test/unit/mock/files/passwd
363
396
  - test/unit/mock/files/policyfile.lock.json
397
+ - test/unit/mock/files/ports.conf
364
398
  - test/unit/mock/files/rootwrap.conf
399
+ - test/unit/mock/files/serve-cgi-bin.conf
365
400
  - test/unit/mock/files/ssh_config
366
401
  - test/unit/mock/files/sshd_config
367
402
  - test/unit/mock/profiles/empty/metadata.rb
368
403
  - test/unit/mock/profiles/metadata/metadata.rb
369
- - test/unit/mock/profiles/rules/metadata.rb
370
- - test/unit/mock/profiles/rules/test/test.rb
371
404
  - test/unit/profile_context_test.rb
372
405
  - test/unit/profile_test.rb
406
+ - test/unit/resources/apache_conf_test.rb
373
407
  - test/unit/resources/apt_test.rb
374
408
  - test/unit/resources/audit_policy_test.rb
375
409
  - test/unit/resources/auditd_conf_test.rb
@@ -378,6 +412,7 @@ files:
378
412
  - test/unit/resources/bridge_test.rb
379
413
  - test/unit/resources/csv_test.rb
380
414
  - test/unit/resources/etc_group_test.rb
415
+ - test/unit/resources/file_test.rb
381
416
  - test/unit/resources/gem_test.rb
382
417
  - test/unit/resources/group_test.rb
383
418
  - test/unit/resources/host_test.rb
@@ -411,6 +446,7 @@ files:
411
446
  - test/unit/resources/yum_test.rb
412
447
  - test/unit/simpleconfig_test.rb
413
448
  - test/unit/utils/content_parser_test.rb
449
+ - test/unit/utils/find_files_test.rb
414
450
  homepage: https://github.com/chef/inspec
415
451
  licenses:
416
452
  - Apache 2.0
@@ -455,13 +491,16 @@ test_files:
455
491
  - test/integration/cookbooks/os_prepare/recipes/service.rb
456
492
  - test/integration/test/integration/default/_debug_spec.rb
457
493
  - test/integration/test/integration/default/apt_spec.rb
494
+ - test/integration/test/integration/default/compare_matcher_spec.rb
458
495
  - test/integration/test/integration/default/csv_spec.rb
496
+ - test/integration/test/integration/default/etc_group.rb
459
497
  - test/integration/test/integration/default/file_spec.rb
460
498
  - test/integration/test/integration/default/group_spec.rb
461
499
  - test/integration/test/integration/default/ini_spec.rb
462
500
  - test/integration/test/integration/default/json_spec.rb
463
501
  - test/integration/test/integration/default/kernel_module_spec.rb
464
502
  - test/integration/test/integration/default/kernel_parameter_spec.rb
503
+ - test/integration/test/integration/default/os_spec.rb
465
504
  - test/integration/test/integration/default/package_spec.rb
466
505
  - test/integration/test/integration/default/port_spec.rb
467
506
  - test/integration/test/integration/default/registry_key_spec.rb
@@ -489,6 +528,8 @@ test_files:
489
528
  - test/unit/mock/cmd/dscl
490
529
  - test/unit/mock/cmd/env
491
530
  - test/unit/mock/cmd/etc-apt
531
+ - test/unit/mock/cmd/find-apache2-conf-enabled
532
+ - test/unit/mock/cmd/find-apache2-ports-conf
492
533
  - test/unit/mock/cmd/find-etc-rc-d-name-S
493
534
  - test/unit/mock/cmd/find-net-interface
494
535
  - test/unit/mock/cmd/gem-list-local-a-q-rubocop
@@ -531,6 +572,7 @@ test_files:
531
572
  - test/unit/mock/cmd/systemctl-show-all-sshd
532
573
  - test/unit/mock/cmd/win32_product
533
574
  - test/unit/mock/cmd/yum-repolist-all
575
+ - test/unit/mock/files/apache2.conf
534
576
  - test/unit/mock/files/auditd.conf
535
577
  - test/unit/mock/files/bond0
536
578
  - test/unit/mock/files/etcgroup
@@ -544,15 +586,16 @@ test_files:
544
586
  - test/unit/mock/files/ntp.conf
545
587
  - test/unit/mock/files/passwd
546
588
  - test/unit/mock/files/policyfile.lock.json
589
+ - test/unit/mock/files/ports.conf
547
590
  - test/unit/mock/files/rootwrap.conf
591
+ - test/unit/mock/files/serve-cgi-bin.conf
548
592
  - test/unit/mock/files/ssh_config
549
593
  - test/unit/mock/files/sshd_config
550
594
  - test/unit/mock/profiles/empty/metadata.rb
551
595
  - test/unit/mock/profiles/metadata/metadata.rb
552
- - test/unit/mock/profiles/rules/metadata.rb
553
- - test/unit/mock/profiles/rules/test/test.rb
554
596
  - test/unit/profile_context_test.rb
555
597
  - test/unit/profile_test.rb
598
+ - test/unit/resources/apache_conf_test.rb
556
599
  - test/unit/resources/apt_test.rb
557
600
  - test/unit/resources/audit_policy_test.rb
558
601
  - test/unit/resources/auditd_conf_test.rb
@@ -561,6 +604,7 @@ test_files:
561
604
  - test/unit/resources/bridge_test.rb
562
605
  - test/unit/resources/csv_test.rb
563
606
  - test/unit/resources/etc_group_test.rb
607
+ - test/unit/resources/file_test.rb
564
608
  - test/unit/resources/gem_test.rb
565
609
  - test/unit/resources/group_test.rb
566
610
  - test/unit/resources/host_test.rb
@@ -594,3 +638,4 @@ test_files:
594
638
  - test/unit/resources/yum_test.rb
595
639
  - test/unit/simpleconfig_test.rb
596
640
  - test/unit/utils/content_parser_test.rb
641
+ - test/unit/utils/find_files_test.rb