inspec 0.19.3 → 0.20.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 +5 -13
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +30 -2
- data/inspec.gemspec +1 -1
- data/lib/bundles/inspec-compliance.rb +1 -0
- data/lib/bundles/inspec-compliance/.kitchen.yml +21 -0
- data/lib/bundles/inspec-compliance/README.md +24 -0
- data/lib/bundles/inspec-compliance/bootstrap.sh +37 -0
- data/lib/bundles/inspec-compliance/cli.rb +2 -2
- data/lib/bundles/inspec-compliance/support.rb +36 -0
- data/lib/bundles/inspec-compliance/target.rb +3 -5
- data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +56 -0
- data/lib/fetchers/url.rb +7 -2
- data/lib/inspec/backend.rb +1 -1
- data/lib/inspec/cli.rb +13 -13
- data/lib/inspec/plugins/fetcher.rb +1 -0
- data/lib/inspec/version.rb +1 -1
- data/lib/resources/file.rb +11 -23
- data/lib/resources/os.rb +10 -1
- data/lib/resources/package.rb +16 -0
- data/lib/resources/user.rb +14 -0
- data/lib/resources/xinetd.rb +39 -94
- data/lib/utils/filter.rb +184 -0
- data/lib/utils/hash_map.rb +37 -0
- data/test/functional/inspec_test.rb +23 -0
- data/test/helper.rb +5 -0
- data/test/resource/file_test.rb +3 -1
- data/test/unit/{fetchers.rb → fetchers_test.rb} +1 -0
- data/test/unit/mock/cmd/logins-x +4 -0
- data/test/unit/mock/cmd/swlist-l-product +1 -0
- data/test/unit/mock/profiles/resource-tiny/inspec.yml +10 -0
- data/test/unit/mock/profiles/resource-tiny/libraries/resource.rb +3 -0
- data/test/unit/resources/file_test.rb +21 -0
- data/test/unit/resources/package_test.rb +9 -0
- data/test/unit/resources/user_test.rb +6 -0
- data/test/unit/resources/xinetd_test.rb +3 -3
- data/test/unit/utils/filter_table_test.rb +125 -0
- metadata +46 -31
- data/lib/utils/detect.rb +0 -15
@@ -20,6 +20,29 @@ describe 'command tests' do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
+
describe 'cmd' do
|
24
|
+
it 'can run arbitrary ruby' do
|
25
|
+
x = rand
|
26
|
+
y = rand
|
27
|
+
out = inspec("shell -c '#{x} + #{y}'")
|
28
|
+
out.stderr.must_equal ''
|
29
|
+
out.exit_status.must_equal 0
|
30
|
+
j = JSON.load(out.stdout)
|
31
|
+
j.must_equal x+y
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'retrieves resources in JSON' do
|
35
|
+
out = inspec("shell -c 'os.params'")
|
36
|
+
out.stderr.must_equal ''
|
37
|
+
out.exit_status.must_equal 0
|
38
|
+
j = JSON.load(out.stdout)
|
39
|
+
j.keys.must_include 'name'
|
40
|
+
j.keys.must_include 'family'
|
41
|
+
j.keys.must_include 'arch'
|
42
|
+
j.keys.must_include 'release'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
23
46
|
describe 'version' do
|
24
47
|
it 'provides the version number on stdout' do
|
25
48
|
out = inspec('version')
|
data/test/helper.rb
CHANGED
@@ -55,6 +55,7 @@ class MockLoader
|
|
55
55
|
wrlinux: { family: 'wrlinux', release: '7.0(3)I2(2)', arch: 'x86_64' },
|
56
56
|
solaris11: { family: "solaris", release: '11', arch: 'i386'},
|
57
57
|
solaris10: { family: "solaris", release: '10', arch: 'i386'},
|
58
|
+
hpux: {family: 'hpux', release: 'B.11.31', arch: 'ia64'},
|
58
59
|
undefined: { family: nil, release: nil, arch: nil },
|
59
60
|
}
|
60
61
|
|
@@ -242,6 +243,10 @@ class MockLoader
|
|
242
243
|
'find /etc/xinetd.d -type f' => cmd.call('find-xinetd.d'),
|
243
244
|
# wmi test
|
244
245
|
"Get-WmiObject -class win32_service -filter \"name like '%winrm%'\" | ConvertTo-Json" => cmd.call('get-wmiobject'),
|
246
|
+
#user info on hpux
|
247
|
+
"logins -x -l root" => cmd.call('logins-x'),
|
248
|
+
#packages on hpux
|
249
|
+
"swlist -l product | grep vim" => cmd.call('swlist-l-product')
|
245
250
|
}
|
246
251
|
|
247
252
|
@backend
|
data/test/resource/file_test.rb
CHANGED
@@ -22,8 +22,10 @@ describe file('/proc/version') do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
describe file('/dev/stdout') do
|
25
|
-
its(:type) { should eq :
|
25
|
+
its(:type) { should eq :pipe }
|
26
|
+
its('source.type') { should eq :symlink }
|
26
27
|
it { should be_symlink }
|
28
|
+
it { should be_pipe }
|
27
29
|
it { should_not be_file }
|
28
30
|
it { should_not be_directory }
|
29
31
|
end
|
@@ -51,6 +51,7 @@ describe Inspec::Plugins::RelFetcher do
|
|
51
51
|
# ignore pax_global_header, which are commonly seen in github tars and are not
|
52
52
|
# ignored by all tar streaming tools, its not extracted by GNU tar since 1.14
|
53
53
|
%w{/pax_global_header /a/b} => %w{b},
|
54
|
+
%w{pax_global_header a/b} => %w{b},
|
54
55
|
}.each do |ins, outs|
|
55
56
|
describe 'empty profile' do
|
56
57
|
let(:in_files) { ins }
|
@@ -0,0 +1 @@
|
|
1
|
+
vim 7.4 vim
|
@@ -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
|
@@ -143,6 +143,27 @@ describe Inspec::Resources::FileResource do
|
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
146
|
+
describe 'when on hpux' do
|
147
|
+
before do
|
148
|
+
MockLoader.mock_os(resource, :hpux)
|
149
|
+
end
|
150
|
+
|
151
|
+
it 'executes a properly formatted command' do
|
152
|
+
MockLoader.mock_command(resource, "su user -c \"test -flag /fakepath/fakefile\"", exit_status: 0)
|
153
|
+
resource.send(:check_file_permission_by_user, 'user', 'flag')
|
154
|
+
end
|
155
|
+
|
156
|
+
it 'returns true when the cmd exits 0' do
|
157
|
+
MockLoader.mock_command(resource, "su user -c \"test -flag /fakepath/fakefile\"", exit_status: 0)
|
158
|
+
resource.send(:check_file_permission_by_user, 'user', 'flag').must_equal(true)
|
159
|
+
end
|
160
|
+
|
161
|
+
it 'returns false when the cmd exits non-zero' do
|
162
|
+
MockLoader.mock_command(resource, "su user -c \"test -flag /fakepath/fakefile\"", exit_status: 1)
|
163
|
+
resource.send(:check_file_permission_by_user, 'user', 'flag').must_equal(false)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
146
167
|
describe 'when not on linux or freebsd' do
|
147
168
|
before do
|
148
169
|
MockLoader.mock_os(resource, :undefined)
|
@@ -33,6 +33,15 @@ describe 'Inspec::Resources::Package' do
|
|
33
33
|
_(resource.info).must_equal pkg
|
34
34
|
end
|
35
35
|
|
36
|
+
# hpux
|
37
|
+
it 'verify hpux package parsing' do
|
38
|
+
resource = MockLoader.new(:hpux).load_resource('package', 'vim')
|
39
|
+
pkg = { name: 'vim', installed: true, version: '7.4', type: 'pkg' }
|
40
|
+
_(resource.installed?).must_equal true
|
41
|
+
_(resource.version).must_equal '7.4'
|
42
|
+
_(resource.info).must_equal pkg
|
43
|
+
end
|
44
|
+
|
36
45
|
# wrlinux
|
37
46
|
it 'verify wrlinux package parsing' do
|
38
47
|
resource = MockLoader.new(:wrlinux).load_resource('package', 'curl')
|
@@ -68,6 +68,12 @@ describe 'Inspec::Resources::User' do
|
|
68
68
|
_(resource.warndays).must_equal 7
|
69
69
|
end
|
70
70
|
|
71
|
+
it 'read user on hpux' do
|
72
|
+
resource = MockLoader.new(:hpux).load_resource('user', 'root')
|
73
|
+
_(resource.home).must_equal '/'
|
74
|
+
_(resource.shell).must_equal '/sbin/sh'
|
75
|
+
end
|
76
|
+
|
71
77
|
it 'read user on freebsd' do
|
72
78
|
resource = MockLoader.new(:freebsd10).load_resource('user', 'root')
|
73
79
|
_(resource.exists?).must_equal true
|
@@ -17,7 +17,7 @@ describe 'Inspec::Resources::XinetdConf' do
|
|
17
17
|
|
18
18
|
describe 'with services from child configs' do
|
19
19
|
it 'has one service name' do
|
20
|
-
_(resource.services).must_equal %w{chargen}
|
20
|
+
_(resource.services.uniq).must_equal %w{chargen}
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'has multiple service definitions' do
|
@@ -25,12 +25,12 @@ describe 'Inspec::Resources::XinetdConf' do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'can filter by name' do
|
28
|
-
_(resource.services('not here').
|
28
|
+
_(resource.services('not here').services).must_be_empty
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'can chain filters' do
|
32
32
|
one = resource.services('chargen').socket_types('dgram')
|
33
|
-
_(one.
|
33
|
+
_(one.services.length).must_equal 1
|
34
34
|
_(one.ids).must_equal %w{chargen-dgram}
|
35
35
|
end
|
36
36
|
|
@@ -0,0 +1,125 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# author: Dominik Richter
|
3
|
+
# author: Stephan Renatus
|
4
|
+
# author: Christoph Hartmann
|
5
|
+
|
6
|
+
require 'helper'
|
7
|
+
|
8
|
+
describe FilterTable do
|
9
|
+
let (:data) {[
|
10
|
+
{ foo: 3, bar: true, baz: 'yay', num: nil },
|
11
|
+
{ foo: 2, bar: false, baz: 'noo', num: 1 },
|
12
|
+
{ foo: 2, bar: false, baz: 'whatever', num: 2 },
|
13
|
+
]}
|
14
|
+
|
15
|
+
let (:resource) {
|
16
|
+
Class.new do
|
17
|
+
attr_reader :data
|
18
|
+
def initialize(data)
|
19
|
+
@data = data
|
20
|
+
end
|
21
|
+
end
|
22
|
+
}
|
23
|
+
|
24
|
+
let (:factory) { FilterTable.create }
|
25
|
+
let (:instance) { resource.new(data) }
|
26
|
+
|
27
|
+
it 'has a create utility which creates a filter factory' do
|
28
|
+
factory.must_be_kind_of FilterTable::Factory
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'when calling add_accessor' do
|
32
|
+
it 'is chainable' do
|
33
|
+
factory.add_accessor(:sth).must_equal factory
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'wont add nil' do
|
37
|
+
proc { factory.add_accessor(nil) }.must_throw RuntimeError
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'can expose the where method' do
|
41
|
+
factory.add_accessor(:where).connect(resource, :data)
|
42
|
+
_(instance.respond_to?(:where)).must_equal true
|
43
|
+
instance.where({ baz: 'yay' }).params.must_equal [data[0]]
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'will delegate even non-existing methods' do
|
47
|
+
factory.add_accessor(:not_here).connect(resource, :data)
|
48
|
+
_(instance.respond_to?(:not_here)).must_equal true
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe 'when calling add' do
|
53
|
+
it 'is chainable' do
|
54
|
+
factory.add(:sth).must_equal factory
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'wont add nil' do
|
58
|
+
proc { factory.add(nil) }.must_throw RuntimeError
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'can expose a data column' do
|
62
|
+
factory.add(:baz).connect(resource, :data)
|
63
|
+
instance.baz(123).must_be_kind_of(FilterTable::Table)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe 'when calling entries' do
|
68
|
+
before { factory.add(:baz).connect(resource, :data) }
|
69
|
+
let(:entries) { instance.baz(/.*/).entries }
|
70
|
+
let(:entry) { instance.baz('yay').entries }
|
71
|
+
|
72
|
+
it 'retrieves all entries with this field' do
|
73
|
+
entries.length.must_equal 3
|
74
|
+
entry.length.must_equal 1
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'retrieves all entries with this field' do
|
78
|
+
entry[0].must_be_kind_of(Struct)
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'retrieves all entries with this field' do
|
82
|
+
entry[0].baz.must_equal 'yay'
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'prints nicely' do
|
86
|
+
entry[0].to_s.must_match(/ with baz == "yay" one entry/)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe 'with the number field' do
|
91
|
+
before { factory.add(:num).connect(resource, :data) }
|
92
|
+
|
93
|
+
it 'filter by nil' do
|
94
|
+
instance.num(nil).params.must_equal [data[0]]
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'filter by existing numbers' do
|
98
|
+
instance.num(1).params.must_equal [data[1]]
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'filter by missing number' do
|
102
|
+
instance.num(-1).params.must_equal []
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe 'with the string field' do
|
107
|
+
before { factory.add(:baz).connect(resource, :data) }
|
108
|
+
|
109
|
+
it 'filter by existing strings' do
|
110
|
+
instance.baz('yay').params.must_equal [data[0]]
|
111
|
+
end
|
112
|
+
|
113
|
+
it 'filter by missing string' do
|
114
|
+
instance.baz('num').params.must_equal []
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'filter by existing regex' do
|
118
|
+
instance.baz(/A/i).params.must_equal [data[0], data[2]]
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'filter by missing regex' do
|
122
|
+
instance.baz(/zzz/).params.must_equal []
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
metadata
CHANGED
@@ -1,153 +1,153 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.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-
|
11
|
+
date: 2016-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: r-train
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.11'
|
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: 0.
|
26
|
+
version: '0.11'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: thor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.19'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.19'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: json
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.8'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.8'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rainbow
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '2'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: method_source
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0.8'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0.8'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rubyzip
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '1.1'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.1'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - ~>
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
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
110
|
version: '3'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rspec-its
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - ~>
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '1.2'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - ~>
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '1.2'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: pry
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - ~>
|
129
|
+
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - ~>
|
136
|
+
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: mocha
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - ~>
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '1.1'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - ~>
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '1.1'
|
153
153
|
description: InSpec provides a framework for creating end-to-end infrastructure tests.
|
@@ -161,7 +161,7 @@ executables:
|
|
161
161
|
extensions: []
|
162
162
|
extra_rdoc_files: []
|
163
163
|
files:
|
164
|
-
- .rubocop.yml
|
164
|
+
- ".rubocop.yml"
|
165
165
|
- CHANGELOG.md
|
166
166
|
- Gemfile
|
167
167
|
- LICENSE
|
@@ -214,12 +214,16 @@ files:
|
|
214
214
|
- inspec.gemspec
|
215
215
|
- lib/bundles/README.md
|
216
216
|
- lib/bundles/inspec-compliance.rb
|
217
|
+
- lib/bundles/inspec-compliance/.kitchen.yml
|
217
218
|
- lib/bundles/inspec-compliance/README.md
|
218
219
|
- lib/bundles/inspec-compliance/api.rb
|
220
|
+
- lib/bundles/inspec-compliance/bootstrap.sh
|
219
221
|
- lib/bundles/inspec-compliance/cli.rb
|
220
222
|
- lib/bundles/inspec-compliance/configuration.rb
|
221
223
|
- lib/bundles/inspec-compliance/http.rb
|
224
|
+
- lib/bundles/inspec-compliance/support.rb
|
222
225
|
- lib/bundles/inspec-compliance/target.rb
|
226
|
+
- lib/bundles/inspec-compliance/test/integration/default/cli.rb
|
223
227
|
- lib/bundles/inspec-init.rb
|
224
228
|
- lib/bundles/inspec-init/cli.rb
|
225
229
|
- lib/bundles/inspec-init/templates/profile/README.md
|
@@ -335,10 +339,11 @@ files:
|
|
335
339
|
- lib/utils/base_cli.rb
|
336
340
|
- lib/utils/command_wrapper.rb
|
337
341
|
- lib/utils/convert.rb
|
338
|
-
- lib/utils/
|
342
|
+
- lib/utils/filter.rb
|
339
343
|
- lib/utils/filter_array.rb
|
340
344
|
- lib/utils/find_files.rb
|
341
345
|
- lib/utils/hash.rb
|
346
|
+
- lib/utils/hash_map.rb
|
342
347
|
- lib/utils/json_log.rb
|
343
348
|
- lib/utils/modulator.rb
|
344
349
|
- lib/utils/object_traversal.rb
|
@@ -412,12 +417,12 @@ files:
|
|
412
417
|
- test/test-extra.yaml
|
413
418
|
- test/test.yaml
|
414
419
|
- test/unit/control_test.rb
|
415
|
-
- test/unit/fetchers.rb
|
416
420
|
- test/unit/fetchers/local_test.rb
|
417
421
|
- test/unit/fetchers/mock_test.rb
|
418
422
|
- test/unit/fetchers/tar_test.rb
|
419
423
|
- test/unit/fetchers/url_test.rb
|
420
424
|
- test/unit/fetchers/zip_test.rb
|
425
|
+
- test/unit/fetchers_test.rb
|
421
426
|
- test/unit/metadata_test.rb
|
422
427
|
- test/unit/mock/cmd/$env-PATH
|
423
428
|
- test/unit/mock/cmd/Get-NetAdapter
|
@@ -459,6 +464,7 @@ files:
|
|
459
464
|
- test/unit/mock/cmd/initctl-status-ssh
|
460
465
|
- test/unit/mock/cmd/iptables-s
|
461
466
|
- test/unit/mock/cmd/launchctl-list
|
467
|
+
- test/unit/mock/cmd/logins-x
|
462
468
|
- test/unit/mock/cmd/ls-1-etc-init.d
|
463
469
|
- test/unit/mock/cmd/ls-sys-class-net-br
|
464
470
|
- test/unit/mock/cmd/lsmod
|
@@ -484,6 +490,7 @@ files:
|
|
484
490
|
- test/unit/mock/cmd/service-sshd-status
|
485
491
|
- test/unit/mock/cmd/sockstat
|
486
492
|
- test/unit/mock/cmd/success
|
493
|
+
- test/unit/mock/cmd/swlist-l-product
|
487
494
|
- test/unit/mock/cmd/systemctl-show-all-dbus
|
488
495
|
- test/unit/mock/cmd/systemctl-show-all-sshd
|
489
496
|
- test/unit/mock/cmd/win32_product
|
@@ -524,6 +531,8 @@ files:
|
|
524
531
|
- test/unit/mock/profiles/legacy-empty-metadata/metadata.rb
|
525
532
|
- test/unit/mock/profiles/legacy-simple-metadata/metadata.rb
|
526
533
|
- test/unit/mock/profiles/legacy-simple-metadata/test/.gitkeep
|
534
|
+
- test/unit/mock/profiles/resource-tiny/inspec.yml
|
535
|
+
- test/unit/mock/profiles/resource-tiny/libraries/resource.rb
|
527
536
|
- test/unit/mock/profiles/simple-metadata/inspec.yml
|
528
537
|
- test/unit/mock/profiles/skippy-profile-os/controls/one.rb
|
529
538
|
- test/unit/mock/profiles/skippy-profile-os/inspec.yml
|
@@ -585,6 +594,7 @@ files:
|
|
585
594
|
- test/unit/source_readers/flat_test.rb
|
586
595
|
- test/unit/source_readers/inspec_test.rb
|
587
596
|
- test/unit/utils/filter_array_test.rb
|
597
|
+
- test/unit/utils/filter_table_test.rb
|
588
598
|
- test/unit/utils/find_files_test.rb
|
589
599
|
- test/unit/utils/passwd_parser_test.rb
|
590
600
|
- test/unit/utils/simpleconfig_test.rb
|
@@ -599,17 +609,17 @@ require_paths:
|
|
599
609
|
- lib
|
600
610
|
required_ruby_version: !ruby/object:Gem::Requirement
|
601
611
|
requirements:
|
602
|
-
- -
|
612
|
+
- - ">="
|
603
613
|
- !ruby/object:Gem::Version
|
604
614
|
version: '0'
|
605
615
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
606
616
|
requirements:
|
607
|
-
- -
|
617
|
+
- - ">="
|
608
618
|
- !ruby/object:Gem::Version
|
609
619
|
version: '0'
|
610
620
|
requirements: []
|
611
621
|
rubyforge_project:
|
612
|
-
rubygems_version: 2.
|
622
|
+
rubygems_version: 2.5.1
|
613
623
|
signing_key:
|
614
624
|
specification_version: 4
|
615
625
|
summary: Infrastructure and compliance testing.
|
@@ -680,12 +690,12 @@ test_files:
|
|
680
690
|
- test/test-extra.yaml
|
681
691
|
- test/test.yaml
|
682
692
|
- test/unit/control_test.rb
|
683
|
-
- test/unit/fetchers.rb
|
684
693
|
- test/unit/fetchers/local_test.rb
|
685
694
|
- test/unit/fetchers/mock_test.rb
|
686
695
|
- test/unit/fetchers/tar_test.rb
|
687
696
|
- test/unit/fetchers/url_test.rb
|
688
697
|
- test/unit/fetchers/zip_test.rb
|
698
|
+
- test/unit/fetchers_test.rb
|
689
699
|
- test/unit/metadata_test.rb
|
690
700
|
- test/unit/mock/cmd/$env-PATH
|
691
701
|
- test/unit/mock/cmd/Get-NetAdapter
|
@@ -727,6 +737,7 @@ test_files:
|
|
727
737
|
- test/unit/mock/cmd/initctl-status-ssh
|
728
738
|
- test/unit/mock/cmd/iptables-s
|
729
739
|
- test/unit/mock/cmd/launchctl-list
|
740
|
+
- test/unit/mock/cmd/logins-x
|
730
741
|
- test/unit/mock/cmd/ls-1-etc-init.d
|
731
742
|
- test/unit/mock/cmd/ls-sys-class-net-br
|
732
743
|
- test/unit/mock/cmd/lsmod
|
@@ -752,6 +763,7 @@ test_files:
|
|
752
763
|
- test/unit/mock/cmd/service-sshd-status
|
753
764
|
- test/unit/mock/cmd/sockstat
|
754
765
|
- test/unit/mock/cmd/success
|
766
|
+
- test/unit/mock/cmd/swlist-l-product
|
755
767
|
- test/unit/mock/cmd/systemctl-show-all-dbus
|
756
768
|
- test/unit/mock/cmd/systemctl-show-all-sshd
|
757
769
|
- test/unit/mock/cmd/win32_product
|
@@ -792,6 +804,8 @@ test_files:
|
|
792
804
|
- test/unit/mock/profiles/legacy-empty-metadata/metadata.rb
|
793
805
|
- test/unit/mock/profiles/legacy-simple-metadata/metadata.rb
|
794
806
|
- test/unit/mock/profiles/legacy-simple-metadata/test/.gitkeep
|
807
|
+
- test/unit/mock/profiles/resource-tiny/inspec.yml
|
808
|
+
- test/unit/mock/profiles/resource-tiny/libraries/resource.rb
|
795
809
|
- test/unit/mock/profiles/simple-metadata/inspec.yml
|
796
810
|
- test/unit/mock/profiles/skippy-profile-os/controls/one.rb
|
797
811
|
- test/unit/mock/profiles/skippy-profile-os/inspec.yml
|
@@ -853,6 +867,7 @@ test_files:
|
|
853
867
|
- test/unit/source_readers/flat_test.rb
|
854
868
|
- test/unit/source_readers/inspec_test.rb
|
855
869
|
- test/unit/utils/filter_array_test.rb
|
870
|
+
- test/unit/utils/filter_table_test.rb
|
856
871
|
- test/unit/utils/find_files_test.rb
|
857
872
|
- test/unit/utils/passwd_parser_test.rb
|
858
873
|
- test/unit/utils/simpleconfig_test.rb
|