inspec 0.18.0 → 0.19.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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -2
  3. data/README.md +27 -2
  4. data/docs/resources.rst +49 -3
  5. data/inspec.gemspec +1 -1
  6. data/lib/bundles/inspec-compliance/README.md +2 -1
  7. data/lib/bundles/inspec-compliance/api.rb +60 -102
  8. data/lib/bundles/inspec-compliance/cli.rb +133 -14
  9. data/lib/bundles/inspec-compliance/configuration.rb +43 -1
  10. data/lib/bundles/inspec-compliance/http.rb +80 -0
  11. data/lib/bundles/inspec-compliance.rb +1 -0
  12. data/lib/inspec/metadata.rb +40 -27
  13. data/lib/inspec/objects/test.rb +2 -1
  14. data/lib/inspec/resource.rb +1 -0
  15. data/lib/inspec/rspec_json_formatter.rb +1 -1
  16. data/lib/inspec/runner.rb +19 -13
  17. data/lib/inspec/runner_rspec.rb +1 -1
  18. data/lib/inspec/version.rb +1 -1
  19. data/lib/matchers/matchers.rb +32 -13
  20. data/lib/resources/grub_conf.rb +186 -0
  21. data/lib/resources/json.rb +1 -1
  22. data/lib/resources/service.rb +9 -3
  23. data/lib/utils/base_cli.rb +2 -1
  24. data/lib/utils/hash_map.rb +37 -0
  25. data/test/functional/inspec_compliance_test.rb +60 -0
  26. data/test/functional/inspec_exec_test.rb +49 -10
  27. data/test/helper.rb +3 -0
  28. data/test/integration/default/compare_matcher_spec.rb +21 -0
  29. data/test/unit/metadata_test.rb +49 -23
  30. data/test/unit/mock/cmd/systemctl-show-all-dbus +6 -0
  31. data/test/unit/mock/files/grub.conf +21 -0
  32. data/test/unit/mock/profiles/resource-tiny/inspec.yml +10 -0
  33. data/test/unit/mock/profiles/resource-tiny/libraries/resource.rb +3 -0
  34. data/test/unit/mock/profiles/supported_inspec/inspec.yml +2 -0
  35. data/test/unit/mock/profiles/unsupported_inspec/inspec.yml +2 -0
  36. data/test/unit/profile_test.rb +1 -1
  37. data/test/unit/resources/grub_conf_test.rb +29 -0
  38. data/test/unit/resources/service_test.rb +9 -0
  39. data/test/unit/utils/hash_map_test.rb +63 -0
  40. metadata +26 -5
@@ -0,0 +1,60 @@
1
+ # encoding: utf-8
2
+ # author: Dominik Richter
3
+ # author: Christoph Hartmann
4
+
5
+ require 'functional/helper'
6
+
7
+ # basic testing without availability of any server
8
+ describe 'inspec compliance' do
9
+ include FunctionalHelper
10
+
11
+ it 'help' do
12
+ out = inspec('compliance help')
13
+ out.exit_status.must_equal 0
14
+ out.stdout.must_include 'inspec compliance exec PROFILE'
15
+ end
16
+
17
+ # ensure we are logged out
18
+ it 'logout' do
19
+ out = inspec('compliance logout')
20
+ out.exit_status.must_equal 0
21
+ out.stdout.must_include ''
22
+ end
23
+
24
+ it 'login server url missing' do
25
+ out = inspec('compliance login')
26
+ #TODO: we need to convince thor that this is an error
27
+ out.exit_status.must_equal 0
28
+ out.stderr.must_include 'ERROR: "inspec login" was called with no arguments'
29
+ end
30
+
31
+ it 'login server with missing parameters' do
32
+ out = inspec('compliance login http://example.com')
33
+ out.exit_status.must_equal 1
34
+ #TODO: inspec should really use stderr for errors
35
+ out.stdout.must_include 'Please run `inspec compliance login` with options'
36
+ end
37
+
38
+ it 'inspec compliance profiles without authentication' do
39
+ out = inspec('compliance profile')
40
+ out.exit_status.must_equal 1
41
+ end
42
+
43
+ it 'try to upload a profile without directory' do
44
+ out = inspec('compliance upload')
45
+ out.stderr.must_include 'ERROR: "inspec upload" was called with no arguments'
46
+ out.exit_status.must_equal 0
47
+ end
48
+
49
+ it 'try to upload a profile a non-existing path' do
50
+ out = inspec('compliance upload /path/to/dir')
51
+ out.stdout.must_include 'Directory /path/to/dir does not exist.'
52
+ out.exit_status.must_equal 1
53
+ end
54
+
55
+ it 'logout' do
56
+ out = inspec('compliance logout')
57
+ out.exit_status.must_equal 0
58
+ out.stdout.must_include ''
59
+ end
60
+ end
@@ -29,6 +29,29 @@ describe 'inspec exec' do
29
29
  JSON.load(out.stdout).must_be_kind_of Hash
30
30
  end
31
31
 
32
+ let(:example_control) { File.join(example_profile, 'controls', 'example.rb') }
33
+
34
+ it 'can execute a simple file with the default formatter' do
35
+ out = inspec('exec ' + example_control)
36
+ out.stderr.must_equal ''
37
+ out.exit_status.must_equal 0
38
+ out.stdout.must_include '2 examples, 0 failures'
39
+ end
40
+
41
+ it 'can execute a simple file with the json formatter' do
42
+ out = inspec('exec ' + example_control + ' --format json')
43
+ out.stderr.must_equal ''
44
+ out.exit_status.must_equal 0
45
+ JSON.load(out.stdout).must_be_kind_of Hash
46
+ end
47
+
48
+ it 'can execute a simple file with the fulljson formatter' do
49
+ out = inspec('exec ' + example_control + ' --format fulljson')
50
+ out.stderr.must_equal ''
51
+ out.exit_status.must_equal 0
52
+ JSON.load(out.stdout).must_be_kind_of Hash
53
+ end
54
+
32
55
  describe 'execute a profile with json formatting' do
33
56
  let(:json) { JSON.load(inspec('exec ' + example_profile + ' --format json').stdout) }
34
57
  let(:examples) { json['examples'] }
@@ -138,26 +161,42 @@ describe 'inspec exec' do
138
161
  end
139
162
  end
140
163
 
164
+ describe 'with a profile that is not supported on this OS/platform' do
165
+ let(:out) { inspec('exec ' + File.join(profile_path, 'skippy-profile-os')) }
166
+ let(:json) { JSON.load(out.stdout) }
167
+
168
+ it 'exits with an error' do
169
+ out.stderr.must_match /^This OS\/platform \(.+\) is not supported by this profile.$/
170
+ out.exit_status.must_equal 1
171
+ end
172
+ end
173
+
141
174
  describe 'with a profile that is not supported on this OS/platform' do
142
175
  let(:out) { inspec('exec ' + File.join(profile_path, 'skippy-profile-os') + ' --format fulljson') }
143
176
  let(:json) { JSON.load(out.stdout) }
144
177
 
178
+ # TODO: failure handling in json formatters...
179
+
180
+ it 'never runs the actual resource' do
181
+ File.exist?('/tmp/inspec_test_DONT_CREATE').must_equal false
182
+ end
183
+ end
184
+
185
+ describe 'with a profile that is supported on this version of inspec' do
186
+ let(:out) { inspec('exec ' + File.join(profile_path, 'supported_inspec')) }
187
+
145
188
  it 'exits cleanly' do
146
189
  out.stderr.must_equal ''
147
190
  out.exit_status.must_equal 0
148
191
  end
192
+ end
149
193
 
150
- it 'has one pending' do
151
- json['summary']['pending_count'].must_equal 1
152
- json['summary']['example_count'].must_equal 1
153
- end
154
-
155
- it 'delivers the pending message' do
156
- json['examples'][0]['pending'].must_match %r{^This OS/platform \([^)]+\) is not supported by this profile\.$}
157
- end
194
+ describe 'with a profile that is not supported on this version of inspec' do
195
+ let(:out) { inspec('exec ' + File.join(profile_path, 'unsupported_inspec')) }
158
196
 
159
- it 'never runs the actual resource' do
160
- File.exist?('/tmp/inspec_test_DONT_CREATE').must_equal false
197
+ it 'does not support this profile' do
198
+ out.exit_status.must_equal 1
199
+ out.stderr.must_equal "This profile requires InSpec version >= 99.0.0. You are running InSpec v#{Inspec::VERSION}.\n"
161
200
  end
162
201
  end
163
202
  end
data/test/helper.rb CHANGED
@@ -106,6 +106,7 @@ class MockLoader
106
106
  '/etc/security/limits.conf' => mockfile.call('limits.conf'),
107
107
  '/etc/inetd.conf' => mockfile.call('inetd.conf'),
108
108
  '/etc/group' => mockfile.call('etcgroup'),
109
+ '/etc/grub.conf' => mockfile.call('grub.conf'),
109
110
  '/etc/audit/auditd.conf' => mockfile.call('auditd.conf'),
110
111
  '/etc/mysql/my.cnf' => mockfile.call('mysql.conf'),
111
112
  '/etc/mysql/mysql2.conf' => mockfile.call('mysql2.conf'),
@@ -178,6 +179,8 @@ class MockLoader
178
179
  # show ssh service Centos 7
179
180
  'systemctl show --all sshd' => cmd.call('systemctl-show-all-sshd'),
180
181
  '/path/to/systemctl show --all sshd' => cmd.call('systemctl-show-all-sshd'),
182
+ 'systemctl show --all dbus' => cmd.call('systemctl-show-all-dbus'),
183
+ '/path/to/systemctl show --all dbus' => cmd.call('systemctl-show-all-dbus'),
181
184
  # services on macos
182
185
  'launchctl list' => cmd.call('launchctl-list'),
183
186
  # services on freebsd 10
@@ -34,4 +34,25 @@ if os.linux?
34
34
  describe len do
35
35
  it { should cmp len.to_s }
36
36
  end
37
+
38
+ describe '12' do
39
+ it { should cmp < 13 }
40
+ it { should cmp > 11 }
41
+ it { should_not cmp < 12 }
42
+ it { should_not cmp > 12 }
43
+ it { should cmp <= 12 }
44
+ it { should cmp >= 12 }
45
+ it { should_not cmp <= 11 }
46
+ it { should_not cmp >= 13 }
47
+ end
48
+
49
+ describe '' do
50
+ it { should_not cmp >= 3 }
51
+ it { should_not cmp < 3 }
52
+ end
53
+
54
+ describe nil do
55
+ it { should_not cmp >= 3 }
56
+ it { should_not cmp < 3 }
57
+ end
37
58
  end
@@ -8,6 +8,14 @@ require 'inspec/metadata'
8
8
  describe 'metadata with supported operating systems' do
9
9
  let(:logger) { Minitest::Mock.new }
10
10
 
11
+ def supports_meta(params)
12
+ res = Inspec::Metadata.from_yaml('mock', "---", nil, logger)
13
+ # manually inject supported parameters
14
+ res.params[:supports] = params
15
+ Inspec::Metadata.finalize(res, 'mock', logger)
16
+ res
17
+ end
18
+
11
19
  describe 'running on ubuntu 14.04' do
12
20
  let (:backend) { MockLoader.new(:ubuntu1404).backend }
13
21
 
@@ -32,74 +40,92 @@ describe 'metadata with supported operating systems' do
32
40
  it 'loads the support field from metadata' do
33
41
  res = Inspec::Metadata.from_yaml('mock',
34
42
  "---\nsupports:\n - os: ubuntu", nil)
35
- res.params[:supports].must_equal([{ 'os' => 'ubuntu' }])
36
- end
37
-
38
- # Description of method
39
- #
40
- # @param [Type] params describe params
41
- # @return [Type] description of returned object
42
- def create_meta(params)
43
- res = Inspec::Metadata.from_yaml('mock', "---", nil, logger)
44
- # manually inject supported parameters
45
- res.params[:supports] = params
46
- Inspec::Metadata.finalize(res, 'mock')
47
- res
43
+ res.params[:supports].must_equal([{ os: 'ubuntu' }])
48
44
  end
49
45
 
50
46
  it 'load a profile with empty supports clause' do
51
- m = create_meta(nil)
47
+ m = supports_meta(nil)
52
48
  m.supports_transport?(backend).must_equal true
53
49
  end
54
50
 
55
51
  it 'supports legacy simple support style, but warns' do
56
52
  # i.e. setting this to something that would fail:
57
- m = create_meta('linux')
58
53
  logger.expect :warn, nil, [
59
54
  'Do not use deprecated `supports: linux` '\
60
55
  'syntax. Instead use `supports: {os-family: linux}`.']
56
+ m = supports_meta('linux')
61
57
  m.supports_transport?(backend).must_equal true
62
58
  logger.verify
63
59
  end
64
60
 
65
61
  it 'loads a profile which supports os ubuntu' do
66
- m = create_meta({ 'os' => 'ubuntu' })
62
+ m = supports_meta({ 'os' => 'ubuntu' })
67
63
  m.supports_transport?(backend).must_equal true
68
64
  end
69
65
 
70
66
  it 'loads a profile which supports os name ubuntu' do
71
- m = create_meta({ 'os-name' => 'ubuntu' })
67
+ m = supports_meta({ 'os-name' => 'ubuntu' })
72
68
  m.supports_transport?(backend).must_equal true
73
69
  end
74
70
 
75
71
  it 'loads a profile which supports os family linux' do
76
- m = create_meta({ 'os-family' => 'linux' })
72
+ m = supports_meta({ 'os-family' => 'linux' })
77
73
  m.supports_transport?(backend).must_equal true
78
74
  end
79
75
 
80
76
  it 'loads a profile which supports release 14.04' do
81
- m = create_meta({ 'release' => '14.04' })
77
+ m = supports_meta({ 'release' => '14.04' })
82
78
  m.supports_transport?(backend).must_equal true
83
79
  end
84
80
 
85
81
  it 'rejects a profile which supports release 12.04' do
86
- m = create_meta({ 'release' => '12.04' })
82
+ m = supports_meta({ 'release' => '12.04' })
87
83
  m.supports_transport?(backend).must_equal false
88
84
  end
89
85
 
90
86
  it 'loads a profile which supports ubuntu 14.04' do
91
- m = create_meta({ 'os-name' => 'ubuntu', 'release' => '14.04' })
87
+ m = supports_meta({ 'os-name' => 'ubuntu', 'release' => '14.04' })
92
88
  m.supports_transport?(backend).must_equal true
93
89
  end
94
90
 
95
91
  it 'rejects a profile which supports ubuntu 12.04' do
96
- m = create_meta({ 'os-name' => 'ubuntu', 'release' => '12.04' })
92
+ m = supports_meta({ 'os-name' => 'ubuntu', 'release' => '12.04' })
97
93
  m.supports_transport?(backend).must_equal false
98
94
  end
99
95
 
100
96
  it 'reject unsupported os' do
101
- m = create_meta({ 'os-name' => 'windows' })
97
+ m = supports_meta({ 'os-name' => 'windows' })
102
98
  m.supports_transport?(backend).must_equal false
103
99
  end
104
100
  end
101
+
102
+ describe 'testing the supported runtime' do
103
+ let(:current_version) { Inspec::VERSION }
104
+ let(:next_version) { current_version.sub(/\.\d+$/) { |num| num.to_i.next } }
105
+
106
+ it 'returns true on testing the current version' do
107
+ m = supports_meta({ 'inspec' => current_version })
108
+ m.supports_runtime?.must_equal true
109
+ end
110
+
111
+ it 'returns true on testing the current version' do
112
+ m = supports_meta({ 'inspec' => '= ' + current_version })
113
+ m.supports_runtime?.must_equal true
114
+ end
115
+
116
+ it 'returns true on testing >= current version' do
117
+ m = supports_meta({ 'inspec' => '>= ' + current_version })
118
+ m.supports_runtime?.must_equal true
119
+ end
120
+
121
+ it 'returns false on testing >= the next version' do
122
+ m = supports_meta({ 'inspec' => '>= ' + next_version })
123
+ m.supports_runtime?.must_equal false
124
+ end
125
+
126
+ it 'returns false on testing > the next version' do
127
+ m = supports_meta({ 'inspec' => '> ' + next_version })
128
+ m.supports_runtime?.must_equal false
129
+ end
130
+ end
105
131
  end
@@ -0,0 +1,6 @@
1
+ Id=dbus.service
2
+ Names=messagebus.service dbus.service
3
+ Description=D-Bus System Message Bus
4
+ LoadState=loaded
5
+ UnitFileState=static
6
+ SubState=running
@@ -0,0 +1,21 @@
1
+ # grub.conf generated by anaconda
2
+ #
3
+ # Note that you do not have to rerun grub after making changes to this file
4
+ # NOTICE: You have a /boot partition. This means that
5
+ # all kernel and initrd paths are relative to /boot/, eg.
6
+ # root (hd0,0)
7
+ # kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
8
+ # initrd /initrd-[generic-]version.img
9
+ #boot=/dev/sda
10
+ default=0
11
+ timeout=5
12
+ splashimage=(hd0,0)/grub/splash.xpm.gz
13
+ hiddenmenu
14
+ title CentOS (2.6.32-573.7.1.el6.x86_64)
15
+ root (hd0,0)
16
+ kernel /vmlinuz-2.6.32-573.7.1.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_GB.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet audit=1
17
+ initrd /initramfs-2.6.32-573.7.1.el6.x86_64.img
18
+ title CentOS 6 (2.6.32-573.el6.x86_64)
19
+ root (hd0,0)
20
+ kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_GB.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet audit=1
21
+ initrd /initramfs-2.6.32-573.el6.x86_64.img
@@ -0,0 +1,10 @@
1
+ name: complete
2
+ title: complete example profile
3
+ maintainer: Chef Software, Inc.
4
+ copyright: Chef Software, Inc.
5
+ copyright_email: support@chef.io
6
+ license: Proprietary, All rights reserved
7
+ summary: Testing stub
8
+ version: 1.0.0
9
+ supports:
10
+ - os-family: linux
@@ -0,0 +1,3 @@
1
+ class Tiny < Inspec.resource(1)
2
+ name 'tiny'
3
+ end
@@ -0,0 +1,2 @@
1
+ supports:
2
+ - inspec: 0.18
@@ -0,0 +1,2 @@
1
+ supports:
2
+ - inspec: '>= 99.0.0'
@@ -172,7 +172,7 @@ describe Inspec::Profile do
172
172
  end
173
173
 
174
174
  it 'doesnt have constraints on supported systems' do
175
- profile.metadata.params.wont_include(:supports)
175
+ profile.metadata.params[:supports].must_equal([])
176
176
  end
177
177
  end
178
178
 
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+ # author: Thomas Cate
3
+
4
+ require 'helper'
5
+ require 'inspec/resource'
6
+
7
+ describe 'Inspec::Resources::GrubConfig' do
8
+
9
+ it 'verify kernel include' do
10
+ resource = MockLoader.new(:centos6).load_resource('grub_conf')
11
+ _(resource.kernel).must_be_kind_of Array
12
+ end
13
+
14
+ it 'verify initrd include' do
15
+ resource = MockLoader.new(:centos6).load_resource('grub_conf')
16
+ _(resource.initrd).must_be_kind_of String
17
+ end
18
+
19
+ it 'verify default' do
20
+ resource = MockLoader.new(:centos6).load_resource('grub_conf')
21
+ _(resource.default).must_equal '0'
22
+ end
23
+
24
+ it 'verify timeout' do
25
+ resource = MockLoader.new(:centos6).load_resource('grub_conf')
26
+ _(resource.timeout).must_equal '5'
27
+ end
28
+
29
+ end
@@ -94,6 +94,15 @@ describe 'Inspec::Resources::Service' do
94
94
  _(resource.running?).must_equal true
95
95
  end
96
96
 
97
+ it 'verify centos 7 package parsing with static loaded service' do
98
+ resource = MockLoader.new(:centos7).load_resource('service', 'dbus')
99
+ srv = { name: 'dbus.service', description: 'D-Bus System Message Bus', installed: true, running: true, enabled: true, type: 'systemd' }
100
+ _(resource.info).must_equal srv
101
+ _(resource.installed?).must_equal true
102
+ _(resource.enabled?).must_equal true
103
+ _(resource.running?).must_equal true
104
+ end
105
+
97
106
  # freebsd
98
107
  it 'verify freebsd10 package parsing' do
99
108
  resource = MockLoader.new(:freebsd10).load_resource('service', 'sendmail')
@@ -0,0 +1,63 @@
1
+ # encoding: utf-8
2
+ # author: Dominik Richter
3
+ # author: Christoph Hartmann
4
+
5
+ require 'helper'
6
+ require 'utils/hash_map'
7
+
8
+ describe HashMap do
9
+ describe '#get_value' do
10
+ it 'returns the source value if no keys are given' do
11
+ x = rand
12
+ HashMap[x].must_equal x
13
+ end
14
+
15
+ it 'retrieves a key from a map' do
16
+ x = { a: rand }
17
+ HashMap[x, :a].must_equal x[:a]
18
+ end
19
+
20
+ it 'returns nil if the key doesnt exist' do
21
+ x = { a: rand }
22
+ HashMap[x, :b].must_be :nil?
23
+ end
24
+
25
+ it 'can extract a nil key' do
26
+ x = { nil => rand }
27
+ HashMap[x, nil].must_equal x[nil]
28
+ end
29
+
30
+ it 'extracts multiple keys' do
31
+ y = rand
32
+ x = { a: { b: { c: y }}}
33
+ HashMap[x, :a, :b, :c].must_equal y
34
+ end
35
+
36
+ it 'returns nil if a key in a list doesnt exist' do
37
+ x = { a: { b: { c: rand }}}
38
+ HashMap[x, :d, :b, :c].must_be :nil?
39
+ end
40
+
41
+ it 'retrieves exact keys by string' do
42
+ x = { a: rand }
43
+ HashMap[x, :a].must_equal x[:a]
44
+ HashMap[x, 'a'].must_be :nil?
45
+ end
46
+
47
+ it 'retrieves exact keys by string' do
48
+ x = { 'a' => rand }
49
+ HashMap[x, 'a'].must_equal x['a']
50
+ HashMap[x, :a].must_be :nil?
51
+ end
52
+
53
+ it 'con retrieve string keys' do
54
+ x = { 'a' => rand }
55
+ HashMap.extract_keys(x, ['a'], string_keys: true).must_equal x['a']
56
+ HashMap.extract_keys(x, [:a], string_keys: true).must_equal x['a']
57
+ end
58
+ end
59
+
60
+ describe 'as an instance' do
61
+
62
+ end
63
+ 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.18.0
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-09 00:00:00.000000000 Z
11
+ date: 2016-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: r-train
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '3.3'
103
+ version: '3'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '3.3'
110
+ version: '3'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rspec-its
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -218,6 +218,7 @@ files:
218
218
  - lib/bundles/inspec-compliance/api.rb
219
219
  - lib/bundles/inspec-compliance/cli.rb
220
220
  - lib/bundles/inspec-compliance/configuration.rb
221
+ - lib/bundles/inspec-compliance/http.rb
221
222
  - lib/bundles/inspec-compliance/target.rb
222
223
  - lib/bundles/inspec-init.rb
223
224
  - lib/bundles/inspec-init/cli.rb
@@ -286,6 +287,7 @@ files:
286
287
  - lib/resources/file.rb
287
288
  - lib/resources/gem.rb
288
289
  - lib/resources/group.rb
290
+ - lib/resources/grub_conf.rb
289
291
  - lib/resources/host.rb
290
292
  - lib/resources/inetd_conf.rb
291
293
  - lib/resources/ini.rb
@@ -335,6 +337,7 @@ files:
335
337
  - lib/utils/filter_array.rb
336
338
  - lib/utils/find_files.rb
337
339
  - lib/utils/hash.rb
340
+ - lib/utils/hash_map.rb
338
341
  - lib/utils/json_log.rb
339
342
  - lib/utils/modulator.rb
340
343
  - lib/utils/object_traversal.rb
@@ -368,6 +371,7 @@ files:
368
371
  - test/functional/helper.rb
369
372
  - test/functional/inheritance_test.rb
370
373
  - test/functional/inspec_archive_test.rb
374
+ - test/functional/inspec_compliance_test.rb
371
375
  - test/functional/inspec_exec_test.rb
372
376
  - test/functional/inspec_json_test.rb
373
377
  - test/functional/inspec_test.rb
@@ -479,6 +483,7 @@ files:
479
483
  - test/unit/mock/cmd/service-sshd-status
480
484
  - test/unit/mock/cmd/sockstat
481
485
  - test/unit/mock/cmd/success
486
+ - test/unit/mock/cmd/systemctl-show-all-dbus
482
487
  - test/unit/mock/cmd/systemctl-show-all-sshd
483
488
  - test/unit/mock/cmd/win32_product
484
489
  - test/unit/mock/cmd/yum-repolist-all
@@ -487,6 +492,7 @@ files:
487
492
  - test/unit/mock/files/bond0
488
493
  - test/unit/mock/files/etcgroup
489
494
  - test/unit/mock/files/example.csv
495
+ - test/unit/mock/files/grub.conf
490
496
  - test/unit/mock/files/inetd.conf
491
497
  - test/unit/mock/files/kitchen.yml
492
498
  - test/unit/mock/files/limits.conf
@@ -517,9 +523,13 @@ files:
517
523
  - test/unit/mock/profiles/legacy-empty-metadata/metadata.rb
518
524
  - test/unit/mock/profiles/legacy-simple-metadata/metadata.rb
519
525
  - test/unit/mock/profiles/legacy-simple-metadata/test/.gitkeep
526
+ - test/unit/mock/profiles/resource-tiny/inspec.yml
527
+ - test/unit/mock/profiles/resource-tiny/libraries/resource.rb
520
528
  - test/unit/mock/profiles/simple-metadata/inspec.yml
521
529
  - test/unit/mock/profiles/skippy-profile-os/controls/one.rb
522
530
  - test/unit/mock/profiles/skippy-profile-os/inspec.yml
531
+ - test/unit/mock/profiles/supported_inspec/inspec.yml
532
+ - test/unit/mock/profiles/unsupported_inspec/inspec.yml
523
533
  - test/unit/plugin_test.rb
524
534
  - test/unit/plugins/resource_test.rb
525
535
  - test/unit/profile_context_test.rb
@@ -536,6 +546,7 @@ files:
536
546
  - test/unit/resources/file_test.rb
537
547
  - test/unit/resources/gem_test.rb
538
548
  - test/unit/resources/group_test.rb
549
+ - test/unit/resources/grub_conf_test.rb
539
550
  - test/unit/resources/host_test.rb
540
551
  - test/unit/resources/inetd_conf_test.rb
541
552
  - test/unit/resources/ini_test.rb
@@ -575,6 +586,7 @@ files:
575
586
  - test/unit/source_readers/inspec_test.rb
576
587
  - test/unit/utils/filter_array_test.rb
577
588
  - test/unit/utils/find_files_test.rb
589
+ - test/unit/utils/hash_map_test.rb
578
590
  - test/unit/utils/passwd_parser_test.rb
579
591
  - test/unit/utils/simpleconfig_test.rb
580
592
  - test/unit/utils/solaris_netstat_parser.rb
@@ -598,7 +610,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
598
610
  version: '0'
599
611
  requirements: []
600
612
  rubyforge_project:
601
- rubygems_version: 2.4.6
613
+ rubygems_version: 2.5.1
602
614
  signing_key:
603
615
  specification_version: 4
604
616
  summary: Infrastructure and compliance testing.
@@ -629,6 +641,7 @@ test_files:
629
641
  - test/functional/helper.rb
630
642
  - test/functional/inheritance_test.rb
631
643
  - test/functional/inspec_archive_test.rb
644
+ - test/functional/inspec_compliance_test.rb
632
645
  - test/functional/inspec_exec_test.rb
633
646
  - test/functional/inspec_json_test.rb
634
647
  - test/functional/inspec_test.rb
@@ -740,6 +753,7 @@ test_files:
740
753
  - test/unit/mock/cmd/service-sshd-status
741
754
  - test/unit/mock/cmd/sockstat
742
755
  - test/unit/mock/cmd/success
756
+ - test/unit/mock/cmd/systemctl-show-all-dbus
743
757
  - test/unit/mock/cmd/systemctl-show-all-sshd
744
758
  - test/unit/mock/cmd/win32_product
745
759
  - test/unit/mock/cmd/yum-repolist-all
@@ -748,6 +762,7 @@ test_files:
748
762
  - test/unit/mock/files/bond0
749
763
  - test/unit/mock/files/etcgroup
750
764
  - test/unit/mock/files/example.csv
765
+ - test/unit/mock/files/grub.conf
751
766
  - test/unit/mock/files/inetd.conf
752
767
  - test/unit/mock/files/kitchen.yml
753
768
  - test/unit/mock/files/limits.conf
@@ -778,9 +793,13 @@ test_files:
778
793
  - test/unit/mock/profiles/legacy-empty-metadata/metadata.rb
779
794
  - test/unit/mock/profiles/legacy-simple-metadata/metadata.rb
780
795
  - test/unit/mock/profiles/legacy-simple-metadata/test/.gitkeep
796
+ - test/unit/mock/profiles/resource-tiny/inspec.yml
797
+ - test/unit/mock/profiles/resource-tiny/libraries/resource.rb
781
798
  - test/unit/mock/profiles/simple-metadata/inspec.yml
782
799
  - test/unit/mock/profiles/skippy-profile-os/controls/one.rb
783
800
  - test/unit/mock/profiles/skippy-profile-os/inspec.yml
801
+ - test/unit/mock/profiles/supported_inspec/inspec.yml
802
+ - test/unit/mock/profiles/unsupported_inspec/inspec.yml
784
803
  - test/unit/plugin_test.rb
785
804
  - test/unit/plugins/resource_test.rb
786
805
  - test/unit/profile_context_test.rb
@@ -797,6 +816,7 @@ test_files:
797
816
  - test/unit/resources/file_test.rb
798
817
  - test/unit/resources/gem_test.rb
799
818
  - test/unit/resources/group_test.rb
819
+ - test/unit/resources/grub_conf_test.rb
800
820
  - test/unit/resources/host_test.rb
801
821
  - test/unit/resources/inetd_conf_test.rb
802
822
  - test/unit/resources/ini_test.rb
@@ -836,6 +856,7 @@ test_files:
836
856
  - test/unit/source_readers/inspec_test.rb
837
857
  - test/unit/utils/filter_array_test.rb
838
858
  - test/unit/utils/find_files_test.rb
859
+ - test/unit/utils/hash_map_test.rb
839
860
  - test/unit/utils/passwd_parser_test.rb
840
861
  - test/unit/utils/simpleconfig_test.rb
841
862
  - test/unit/utils/solaris_netstat_parser.rb