inspec 0.19.3 → 0.20.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|