inspec 0.20.1 → 0.21.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 +4 -4
- data/CHANGELOG.md +45 -2
- data/docs/dsl_inspec.rst +2 -2
- data/docs/resources.rst +9 -9
- data/docs/ruby_usage.rst +145 -0
- data/inspec.gemspec +1 -0
- data/lib/bundles/inspec-compliance/cli.rb +15 -2
- data/lib/inspec/cli.rb +23 -10
- data/lib/inspec/dsl.rb +0 -52
- data/lib/inspec/objects/or_test.rb +1 -0
- data/lib/inspec/objects/test.rb +4 -4
- data/lib/inspec/profile.rb +76 -61
- data/lib/inspec/profile_context.rb +12 -11
- data/lib/inspec/rspec_json_formatter.rb +93 -40
- data/lib/inspec/rule.rb +7 -29
- data/lib/inspec/runner.rb +15 -4
- data/lib/inspec/runner_mock.rb +1 -1
- data/lib/inspec/runner_rspec.rb +26 -24
- data/lib/inspec/version.rb +1 -1
- data/lib/matchers/matchers.rb +3 -3
- data/lib/resources/auditd_rules.rb +2 -2
- data/lib/resources/host.rb +1 -1
- data/lib/resources/interface.rb +1 -1
- data/lib/resources/kernel_parameter.rb +1 -1
- data/lib/resources/mount.rb +2 -1
- data/lib/resources/mysql_session.rb +1 -1
- data/lib/resources/os_env.rb +2 -2
- data/lib/resources/passwd.rb +33 -93
- data/lib/resources/port.rb +47 -3
- data/lib/resources/processes.rb +3 -3
- data/lib/resources/service.rb +33 -1
- data/lib/resources/user.rb +15 -15
- data/lib/utils/base_cli.rb +1 -3
- data/lib/utils/filter.rb +30 -7
- data/test/cookbooks/os_prepare/recipes/_upstart_service_centos.rb +4 -0
- data/test/functional/helper.rb +1 -0
- data/test/functional/inheritance_test.rb +1 -1
- data/test/functional/inspec_compliance_test.rb +4 -3
- data/test/functional/inspec_exec_json_test.rb +122 -0
- data/test/functional/inspec_exec_test.rb +23 -117
- data/test/functional/{inspec_json_test.rb → inspec_json_profile_test.rb} +13 -15
- data/test/functional/inspec_test.rb +15 -2
- data/test/helper.rb +5 -1
- data/test/integration/default/auditd_rules_spec.rb +3 -3
- data/test/integration/default/kernel_parameter_spec.rb +6 -6
- data/test/integration/default/service_spec.rb +4 -0
- data/test/resource/command_test.rb +9 -9
- data/test/resource/dsl_test.rb +1 -1
- data/test/resource/file_test.rb +17 -17
- data/test/unit/control_test.rb +1 -1
- data/test/unit/mock/cmd/hpux-netstat-inet +10 -0
- data/test/unit/mock/cmd/hpux-netstat-inet6 +11 -0
- data/test/unit/mock/profiles/skippy-profile-os/controls/one.rb +1 -1
- data/test/unit/profile_context_test.rb +2 -2
- data/test/unit/profile_test.rb +11 -14
- data/test/unit/resources/passwd_test.rb +13 -14
- data/test/unit/resources/port_test.rb +14 -0
- data/test/unit/resources/processes_test.rb +3 -3
- data/test/unit/resources/service_test.rb +103 -39
- data/test/unit/utils/filter_table_test.rb +35 -3
- metadata +25 -4
data/test/unit/control_test.rb
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
Active Internet connections (including servers)
|
2
|
+
Proto Recv-Q Send-Q Local Address Foreign Address (state)
|
3
|
+
tcp 0 0 *.515 *.* LISTEN
|
4
|
+
tcp 0 28 16.147.37.141.22 16.180.154.172.64145 ESTABLISHED
|
5
|
+
tcp 0 0 *.22 *.* LISTEN
|
6
|
+
tcp 0 0 *.49196 *.* LISTEN
|
7
|
+
tcp 0 0 16.147.37.141.49399 16.147.37.141.1712 ESTABLISHED
|
8
|
+
tcp 0 0 127.0.0.1.49433 *.* LISTEN
|
9
|
+
udp 0 0 127.0.0.1.49178 127.0.0.1.49178
|
10
|
+
udp 0 0 *.49153 *.*
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Active Internet connections (IPv6, including servers)
|
2
|
+
Proto Recv-Q Send-Q Local Address Foreign Address (state)
|
3
|
+
tcp6 0 0 ::1.49309 *.* LISTEN
|
4
|
+
tcp6 0 0 *.21 *.* LISTEN
|
5
|
+
tcp6 0 0 ::1.49671 ::1.49400 ESTABLISHED
|
6
|
+
tcp6 0 0 *.383 *.* LISTEN
|
7
|
+
tcp6 0 0 *.22 *.* LISTEN
|
8
|
+
tcp6 0 0 ::1.49403 ::1.49400 ESTABLISHED
|
9
|
+
tcp6 0 0 ::1.62538 ::1.62537 TIME_WAIT
|
10
|
+
udp6 0 0 *.514 *.*
|
11
|
+
udp6 0 0 *.9 *.*
|
@@ -177,13 +177,13 @@ describe Inspec::ProfileContext do
|
|
177
177
|
|
178
178
|
it 'provides the control keyword in the global DSL' do
|
179
179
|
profile.load('control 1')
|
180
|
-
profile.rules.keys.must_equal [1]
|
180
|
+
profile.rules.keys.must_equal ['1']
|
181
181
|
profile.rules.values[0].must_be_kind_of Inspec::Rule
|
182
182
|
end
|
183
183
|
|
184
184
|
it 'provides the rule keyword in the global DSL (legacy mode)' do
|
185
185
|
profile.load('rule 1')
|
186
|
-
profile.rules.keys.must_equal [1]
|
186
|
+
profile.rules.keys.must_equal ['1']
|
187
187
|
profile.rules.values[0].must_be_kind_of Inspec::Rule
|
188
188
|
end
|
189
189
|
end
|
data/test/unit/profile_test.rb
CHANGED
@@ -16,8 +16,8 @@ describe Inspec::Profile do
|
|
16
16
|
profile.params[:name].must_be_nil
|
17
17
|
end
|
18
18
|
|
19
|
-
it 'has no
|
20
|
-
profile.params[:
|
19
|
+
it 'has no controls' do
|
20
|
+
profile.params[:controls].must_equal({})
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -28,8 +28,8 @@ describe Inspec::Profile do
|
|
28
28
|
profile.params[:name].must_be_nil
|
29
29
|
end
|
30
30
|
|
31
|
-
it 'has no
|
32
|
-
profile.params[:
|
31
|
+
it 'has no controls' do
|
32
|
+
profile.params[:controls].must_equal({})
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -41,8 +41,8 @@ describe Inspec::Profile do
|
|
41
41
|
profile.params[:name].must_equal 'yumyum profile'
|
42
42
|
end
|
43
43
|
|
44
|
-
it 'has no
|
45
|
-
profile.params[:
|
44
|
+
it 'has no controls' do
|
45
|
+
profile.params[:controls].must_equal({})
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'can overwrite the profile ID' do
|
@@ -59,8 +59,8 @@ describe Inspec::Profile do
|
|
59
59
|
profile.params[:name].must_equal 'metadata profile'
|
60
60
|
end
|
61
61
|
|
62
|
-
it 'has no
|
63
|
-
profile.params[:
|
62
|
+
it 'has no controls' do
|
63
|
+
profile.params[:controls].must_equal({})
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -179,11 +179,10 @@ describe Inspec::Profile do
|
|
179
179
|
describe 'a complete metadata profile with controls' do
|
180
180
|
let(:profile_id) { 'complete-profile' }
|
181
181
|
|
182
|
-
it 'prints ok messages and counts the
|
182
|
+
it 'prints ok messages and counts the controls' do
|
183
183
|
logger.expect :info, nil, ["Checking profile in #{home}/mock/profiles/#{profile_id}"]
|
184
184
|
logger.expect :info, nil, ['Metadata OK.']
|
185
185
|
logger.expect :info, nil, ['Found 1 controls.']
|
186
|
-
logger.expect :info, nil, ["Verify all controls in controls/filesystem_spec.rb"]
|
187
186
|
logger.expect :info, nil, ['Control definitions OK.']
|
188
187
|
|
189
188
|
result = MockLoader.load_profile(profile_id, {logger: logger}).check
|
@@ -205,11 +204,10 @@ describe Inspec::Profile do
|
|
205
204
|
let(:profile_path) { MockLoader.profile_tgz(profile_id) }
|
206
205
|
let(:profile) { MockLoader.load_profile(profile_path, {logger: logger}) }
|
207
206
|
|
208
|
-
it 'prints ok messages and counts the
|
207
|
+
it 'prints ok messages and counts the controls' do
|
209
208
|
logger.expect :info, nil, ["Checking profile in #{home}/mock/profiles/#{profile_id}"]
|
210
209
|
logger.expect :info, nil, ['Metadata OK.']
|
211
210
|
logger.expect :info, nil, ['Found 1 controls.']
|
212
|
-
logger.expect :info, nil, ["Verify all controls in controls/filesystem_spec.rb"]
|
213
211
|
logger.expect :info, nil, ['Control definitions OK.']
|
214
212
|
|
215
213
|
result = MockLoader.load_profile(profile_id, {logger: logger}).check
|
@@ -231,11 +229,10 @@ describe Inspec::Profile do
|
|
231
229
|
let(:profile_path) { MockLoader.profile_zip(profile_id) }
|
232
230
|
let(:profile) { MockLoader.load_profile(profile_path, {logger: logger}) }
|
233
231
|
|
234
|
-
it 'prints ok messages and counts the
|
232
|
+
it 'prints ok messages and counts the controls' do
|
235
233
|
logger.expect :info, nil, ["Checking profile in #{home}/mock/profiles/#{profile_id}"]
|
236
234
|
logger.expect :info, nil, ['Metadata OK.']
|
237
235
|
logger.expect :info, nil, ['Found 1 controls.']
|
238
|
-
logger.expect :info, nil, ["Verify all controls in controls/filesystem_spec.rb"]
|
239
236
|
logger.expect :info, nil, ['Control definitions OK.']
|
240
237
|
|
241
238
|
result = MockLoader.load_profile(profile_id, {logger: logger}).check
|
@@ -77,36 +77,35 @@ describe 'Inspec::Resources::Passwd' do
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
-
|
81
|
-
describe 'experimental features' do
|
80
|
+
describe 'where clause' do
|
82
81
|
it 'retrieves username via uids < x' do
|
83
|
-
_(passwd.
|
84
|
-
_(passwd.
|
82
|
+
_(passwd.where { uid.to_i < 33 }.entries.length).must_equal 1
|
83
|
+
_(passwd.where { uid.to_i < 34 }.entries.length).must_equal 2
|
85
84
|
end
|
86
85
|
|
87
86
|
it 'retrieves username via uids <= x' do
|
88
|
-
_(passwd.
|
89
|
-
_(passwd.
|
87
|
+
_(passwd.where { uid.to_i <= 32 }.entries.length).must_equal 1
|
88
|
+
_(passwd.where { uid.to_i <= 33 }.entries.length).must_equal 2
|
90
89
|
end
|
91
90
|
|
92
91
|
it 'retrieves username via uids > x' do
|
93
|
-
_(passwd.
|
94
|
-
_(passwd.
|
92
|
+
_(passwd.where { uid.to_i > 0 }.entries.length).must_equal 1
|
93
|
+
_(passwd.where { uid.to_i > -1 }.entries.length).must_equal 2
|
95
94
|
end
|
96
95
|
|
97
96
|
it 'retrieves username via uids >= x' do
|
98
|
-
_(passwd.
|
99
|
-
_(passwd.
|
97
|
+
_(passwd.where { uid.to_i >= 1 }.entries.length).must_equal 1
|
98
|
+
_(passwd.where { uid.to_i >= 0 }.entries.length).must_equal 2
|
100
99
|
end
|
101
100
|
|
102
101
|
it 'retrieves username via uids == x' do
|
103
|
-
_(passwd.
|
104
|
-
_(passwd.
|
102
|
+
_(passwd.where { uid.to_i == 0 }.entries.length).must_equal 1
|
103
|
+
_(passwd.where { uid.to_i == 1 }.entries.length).must_equal 0
|
105
104
|
end
|
106
105
|
|
107
106
|
it 'retrieves username via uids != x' do
|
108
|
-
_(passwd.
|
109
|
-
_(passwd.
|
107
|
+
_(passwd.where { uid.to_i != 0 }.entries.length).must_equal 1
|
108
|
+
_(passwd.where { uid.to_i != 1 }.entries.length).must_equal 2
|
110
109
|
end
|
111
110
|
end
|
112
111
|
end
|
@@ -92,4 +92,18 @@ describe 'Inspec::Resources::Port' do
|
|
92
92
|
_(resource.listening?).must_equal true
|
93
93
|
_(resource.addresses).must_equal ["0.0.0.0"]
|
94
94
|
end
|
95
|
+
|
96
|
+
it 'verify port on hpux' do
|
97
|
+
resource = MockLoader.new(:hpux).load_resource('port', 22)
|
98
|
+
_(resource.listening?).must_equal true
|
99
|
+
_(resource.protocols).must_equal %w{ tcp tcp6 }
|
100
|
+
_(resource.addresses).must_equal ["0.0.0.0", "0:0:0:0:0:0:0:0" ]
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'verify not listening port on hpux' do
|
104
|
+
resource = MockLoader.new(:hpux).load_resource('port', 23)
|
105
|
+
_(resource.listening?).must_equal false
|
106
|
+
_(resource.protocols).must_equal nil
|
107
|
+
_(resource.addresses).must_equal nil
|
108
|
+
end
|
95
109
|
end
|
@@ -15,11 +15,11 @@ describe 'Inspec::Resources::Processes' do
|
|
15
15
|
resource = load_resource('processes', '/bin/bash')
|
16
16
|
_(resource.list).must_equal [{
|
17
17
|
user: 'root',
|
18
|
-
pid:
|
18
|
+
pid: 1,
|
19
19
|
cpu: '0.0',
|
20
20
|
mem: '0.0',
|
21
|
-
vsz:
|
22
|
-
rss:
|
21
|
+
vsz: 18084,
|
22
|
+
rss: 3228,
|
23
23
|
tty: '?',
|
24
24
|
stat: 'Ss',
|
25
25
|
start: '14:15',
|
@@ -4,6 +4,7 @@
|
|
4
4
|
|
5
5
|
require 'helper'
|
6
6
|
require 'inspec/resource'
|
7
|
+
require 'hashie'
|
7
8
|
|
8
9
|
describe 'Inspec::Resources::Service' do
|
9
10
|
let(:runlevels) { {0=>false, 1=>false, 2=>true, 3=>true, 4=>true, 5=>true, 6=>false} }
|
@@ -11,191 +12,254 @@ describe 'Inspec::Resources::Service' do
|
|
11
12
|
# windows
|
12
13
|
it 'verify service parsing' do
|
13
14
|
resource = MockLoader.new(:windows).load_resource('service', 'dhcp')
|
14
|
-
|
15
|
-
_(resource.
|
15
|
+
params = Hashie::Mash.new({})
|
16
|
+
_(resource.type).must_equal 'windows'
|
17
|
+
_(resource.name).must_equal 'dhcp'
|
18
|
+
_(resource.description).must_equal 'DHCP Client'
|
16
19
|
_(resource.installed?).must_equal true
|
17
20
|
_(resource.enabled?).must_equal true
|
18
21
|
_(resource.running?).must_equal true
|
22
|
+
_(resource.params).must_equal params
|
19
23
|
end
|
20
24
|
|
21
25
|
# ubuntu 14.04 with upstart
|
22
26
|
it 'verify ubuntu package parsing' do
|
23
27
|
resource = MockLoader.new(:ubuntu1404).load_resource('service', 'ssh')
|
24
|
-
|
25
|
-
_(resource.
|
28
|
+
params = Hashie::Mash.new({})
|
29
|
+
_(resource.type).must_equal 'upstart'
|
30
|
+
_(resource.name).must_equal 'ssh'
|
31
|
+
_(resource.description).must_equal nil
|
26
32
|
_(resource.installed?).must_equal true
|
27
33
|
_(resource.enabled?).must_equal true
|
28
34
|
_(resource.running?).must_equal true
|
35
|
+
_(resource.params).must_equal params
|
29
36
|
end
|
30
37
|
|
31
38
|
it 'verify ubuntu package parsing with default upstart_service' do
|
32
39
|
resource = MockLoader.new(:ubuntu1404).load_resource('upstart_service', 'ssh')
|
33
|
-
|
34
|
-
_(resource.
|
40
|
+
params = Hashie::Mash.new({})
|
41
|
+
_(resource.type).must_equal 'upstart'
|
42
|
+
_(resource.name).must_equal 'ssh'
|
43
|
+
_(resource.description).must_equal nil
|
35
44
|
_(resource.installed?).must_equal true
|
36
45
|
_(resource.enabled?).must_equal true
|
37
46
|
_(resource.running?).must_equal true
|
47
|
+
_(resource.params).must_equal params
|
48
|
+
_(resource.params.UnitFileState).must_equal nil
|
38
49
|
end
|
39
50
|
|
40
51
|
# ubuntu 15.04 with systemd
|
41
52
|
it 'verify ubuntu package parsing' do
|
42
53
|
resource = MockLoader.new(:ubuntu1504).load_resource('service', 'sshd')
|
43
|
-
|
44
|
-
_(resource.
|
54
|
+
params = Hashie::Mash.new({ 'Description' => 'OpenSSH server daemon', 'Id' => 'sshd.service', 'LoadState' => 'loaded', 'Names' => 'sshd.service', 'SubState' => 'running', 'UnitFileState' => 'enabled' })
|
55
|
+
_(resource.type).must_equal 'systemd'
|
56
|
+
_(resource.name).must_equal 'sshd.service'
|
57
|
+
_(resource.description).must_equal 'OpenSSH server daemon'
|
45
58
|
_(resource.installed?).must_equal true
|
46
59
|
_(resource.enabled?).must_equal true
|
47
60
|
_(resource.running?).must_equal true
|
61
|
+
_(resource.params).must_equal params
|
62
|
+
_(resource.params.SubState).must_equal 'running'
|
48
63
|
end
|
49
64
|
|
50
65
|
it 'verify ubuntu package parsing with default systemd_service' do
|
51
66
|
resource = MockLoader.new(:ubuntu1504).load_resource('systemd_service', 'sshd')
|
52
|
-
|
53
|
-
_(resource.
|
67
|
+
params = Hashie::Mash.new({ 'Description' => 'OpenSSH server daemon', 'Id' => 'sshd.service', 'LoadState' => 'loaded', 'Names' => 'sshd.service', 'SubState' => 'running', 'UnitFileState' => 'enabled' })
|
68
|
+
_(resource.type).must_equal 'systemd'
|
69
|
+
_(resource.name).must_equal 'sshd.service'
|
70
|
+
_(resource.description).must_equal 'OpenSSH server daemon'
|
54
71
|
_(resource.installed?).must_equal true
|
55
72
|
_(resource.enabled?).must_equal true
|
56
73
|
_(resource.running?).must_equal true
|
74
|
+
_(resource.params).must_equal params
|
57
75
|
end
|
58
76
|
|
59
77
|
# centos 6 with sysv
|
60
78
|
it 'verify centos 6 package parsing' do
|
61
79
|
resource = MockLoader.new(:centos6).load_resource('service', 'sshd')
|
62
|
-
|
63
|
-
_(resource.
|
80
|
+
params = Hashie::Mash.new({})
|
81
|
+
_(resource.type).must_equal 'sysv'
|
82
|
+
_(resource.name).must_equal 'sshd'
|
83
|
+
_(resource.description).must_equal nil
|
64
84
|
_(resource.installed?).must_equal true
|
65
85
|
_(resource.enabled?).must_equal true
|
66
86
|
_(resource.running?).must_equal true
|
87
|
+
_(resource.params).must_equal params
|
88
|
+
_(resource.params.SubState).must_equal nil
|
67
89
|
end
|
68
90
|
|
69
91
|
it 'verify centos 6 package parsing with default sysv_service' do
|
70
92
|
resource = MockLoader.new(:centos6).load_resource('sysv_service', 'sshd')
|
71
|
-
|
72
|
-
_(resource.
|
93
|
+
params = Hashie::Mash.new({})
|
94
|
+
_(resource.type).must_equal 'sysv'
|
95
|
+
_(resource.name).must_equal 'sshd'
|
96
|
+
_(resource.description).must_equal nil
|
73
97
|
_(resource.installed?).must_equal true
|
74
98
|
_(resource.enabled?).must_equal true
|
75
99
|
_(resource.running?).must_equal true
|
100
|
+
_(resource.params).must_equal params
|
76
101
|
end
|
77
102
|
|
78
103
|
# centos 7 with systemd
|
79
104
|
it 'verify centos 7 package parsing' do
|
80
105
|
resource = MockLoader.new(:centos7).load_resource('service', 'sshd')
|
81
|
-
|
82
|
-
_(resource.
|
106
|
+
params = Hashie::Mash.new({ 'Description' => 'OpenSSH server daemon', 'Id' => 'sshd.service', 'LoadState' => 'loaded', 'Names' => 'sshd.service', 'SubState' => 'running', 'UnitFileState' => 'enabled' })
|
107
|
+
_(resource.type).must_equal 'systemd'
|
108
|
+
_(resource.name).must_equal 'sshd.service'
|
109
|
+
_(resource.description).must_equal 'OpenSSH server daemon'
|
83
110
|
_(resource.installed?).must_equal true
|
84
111
|
_(resource.enabled?).must_equal true
|
85
112
|
_(resource.running?).must_equal true
|
113
|
+
_(resource.params).must_equal params
|
86
114
|
end
|
87
115
|
|
88
116
|
it 'verify centos 7 package parsing with systemd_service and service_ctl override' do
|
89
117
|
resource = MockLoader.new(:centos7).load_resource('systemd_service', 'sshd', '/path/to/systemctl')
|
90
|
-
|
91
|
-
_(resource.
|
118
|
+
params = Hashie::Mash.new({ 'Description' => 'OpenSSH server daemon', 'Id' => 'sshd.service', 'LoadState' => 'loaded', 'Names' => 'sshd.service', 'SubState' => 'running', 'UnitFileState' => 'enabled' })
|
119
|
+
_(resource.type).must_equal 'systemd'
|
120
|
+
_(resource.name).must_equal 'sshd.service'
|
121
|
+
_(resource.description).must_equal 'OpenSSH server daemon'
|
92
122
|
_(resource.installed?).must_equal true
|
93
123
|
_(resource.enabled?).must_equal true
|
94
124
|
_(resource.running?).must_equal true
|
125
|
+
_(resource.params).must_equal params
|
95
126
|
end
|
96
127
|
|
97
128
|
it 'verify centos 7 package parsing with static loaded service' do
|
98
129
|
resource = MockLoader.new(:centos7).load_resource('service', 'dbus')
|
99
|
-
|
100
|
-
_(resource.
|
130
|
+
params = Hashie::Mash.new({ 'Description' => 'D-Bus System Message Bus', 'Id' => 'dbus.service', 'LoadState' => 'loaded', 'Names' => 'messagebus.service dbus.service', 'SubState' => 'running', 'UnitFileState' => 'static' })
|
131
|
+
_(resource.type).must_equal 'systemd'
|
132
|
+
_(resource.name).must_equal 'dbus.service'
|
133
|
+
_(resource.description).must_equal 'D-Bus System Message Bus'
|
101
134
|
_(resource.installed?).must_equal true
|
102
135
|
_(resource.enabled?).must_equal true
|
103
136
|
_(resource.running?).must_equal true
|
137
|
+
_(resource.params).must_equal params
|
138
|
+
_(resource.params.UnitFileState).must_equal 'static'
|
104
139
|
end
|
105
140
|
|
106
141
|
# freebsd
|
107
142
|
it 'verify freebsd10 package parsing' do
|
108
143
|
resource = MockLoader.new(:freebsd10).load_resource('service', 'sendmail')
|
109
|
-
|
110
|
-
_(resource.
|
144
|
+
params = Hashie::Mash.new({})
|
145
|
+
_(resource.type).must_equal 'bsd-init'
|
146
|
+
_(resource.name).must_equal 'sendmail'
|
147
|
+
_(resource.description).must_equal nil
|
111
148
|
_(resource.installed?).must_equal true
|
112
149
|
_(resource.enabled?).must_equal true
|
113
150
|
_(resource.running?).must_equal true
|
151
|
+
_(resource.params).must_equal params
|
114
152
|
end
|
115
153
|
|
116
154
|
it 'verify freebsd10 package parsing with default bsd_service' do
|
117
155
|
resource = MockLoader.new(:freebsd10).load_resource('bsd_service', 'sendmail')
|
118
|
-
|
119
|
-
_(resource.
|
156
|
+
params = Hashie::Mash.new({})
|
157
|
+
_(resource.type).must_equal 'bsd-init'
|
158
|
+
_(resource.name).must_equal 'sendmail'
|
159
|
+
_(resource.description).must_equal nil
|
120
160
|
_(resource.installed?).must_equal true
|
121
161
|
_(resource.enabled?).must_equal true
|
122
162
|
_(resource.running?).must_equal true
|
163
|
+
_(resource.params).must_equal params
|
123
164
|
end
|
124
165
|
|
125
166
|
# arch linux with systemd
|
126
167
|
it 'verify arch linux package parsing' do
|
127
168
|
resource = MockLoader.new(:arch).load_resource('service', 'sshd')
|
128
|
-
|
129
|
-
_(resource.
|
169
|
+
params = Hashie::Mash.new({ 'Description' => 'OpenSSH server daemon', 'Id' => 'sshd.service', 'LoadState' => 'loaded', 'Names' => 'sshd.service', 'SubState' => 'running', 'UnitFileState' => 'enabled' })
|
170
|
+
_(resource.type).must_equal 'systemd'
|
171
|
+
_(resource.name).must_equal 'sshd.service'
|
172
|
+
_(resource.description).must_equal 'OpenSSH server daemon'
|
130
173
|
_(resource.installed?).must_equal true
|
131
174
|
_(resource.enabled?).must_equal true
|
132
175
|
_(resource.running?).must_equal true
|
176
|
+
_(resource.params).must_equal params
|
133
177
|
end
|
134
178
|
|
135
179
|
# debian 7 with systemv
|
136
180
|
it 'verify debian 7 package parsing' do
|
137
181
|
resource = MockLoader.new(:debian7).load_resource('service', 'sshd')
|
138
|
-
|
139
|
-
_(resource.
|
182
|
+
params = Hashie::Mash.new({})
|
183
|
+
_(resource.type).must_equal 'sysv'
|
184
|
+
_(resource.name).must_equal 'sshd'
|
185
|
+
_(resource.description).must_equal nil
|
140
186
|
_(resource.installed?).must_equal true
|
141
187
|
_(resource.enabled?).must_equal true
|
142
188
|
_(resource.running?).must_equal true
|
189
|
+
_(resource.params).must_equal params
|
143
190
|
end
|
144
191
|
|
145
192
|
# debian 8 with systemd
|
146
193
|
it 'verify debian 8 package parsing' do
|
147
194
|
resource = MockLoader.new(:debian8).load_resource('service', 'sshd')
|
148
|
-
|
149
|
-
_(resource.
|
195
|
+
params = Hashie::Mash.new({ 'Description' => 'OpenSSH server daemon', 'Id' => 'sshd.service', 'LoadState' => 'loaded', 'Names' => 'sshd.service', 'SubState' => 'running', 'UnitFileState' => 'enabled' })
|
196
|
+
_(resource.type).must_equal 'systemd'
|
197
|
+
_(resource.name).must_equal 'sshd.service'
|
198
|
+
_(resource.description).must_equal 'OpenSSH server daemon'
|
150
199
|
_(resource.installed?).must_equal true
|
151
200
|
_(resource.enabled?).must_equal true
|
152
201
|
_(resource.running?).must_equal true
|
202
|
+
_(resource.params).must_equal params
|
153
203
|
end
|
154
204
|
|
155
205
|
# macos test
|
156
206
|
it 'verify mac osx package parsing' do
|
157
207
|
resource = MockLoader.new(:osx104).load_resource('service', 'ssh')
|
158
|
-
|
159
|
-
_(resource.
|
208
|
+
params = Hashie::Mash.new({})
|
209
|
+
_(resource.type).must_equal 'darwin'
|
210
|
+
_(resource.name).must_equal 'org.openbsd.ssh-agent'
|
211
|
+
_(resource.description).must_equal nil
|
160
212
|
_(resource.installed?).must_equal true
|
161
213
|
_(resource.enabled?).must_equal true
|
162
214
|
_(resource.running?).must_equal true
|
215
|
+
_(resource.params).must_equal params
|
163
216
|
end
|
164
217
|
|
165
218
|
it 'verify mac osx package parsing with not-running service' do
|
166
219
|
resource = MockLoader.new(:osx104).load_resource('service', 'FilesystemUI')
|
167
|
-
|
168
|
-
_(resource.
|
220
|
+
params = Hashie::Mash.new({})
|
221
|
+
_(resource.type).must_equal 'darwin'
|
222
|
+
_(resource.name).must_equal 'com.apple.FilesystemUI'
|
223
|
+
_(resource.description).must_equal nil
|
169
224
|
_(resource.installed?).must_equal true
|
170
225
|
_(resource.enabled?).must_equal true
|
171
226
|
_(resource.running?).must_equal false
|
227
|
+
_(resource.params).must_equal params
|
172
228
|
end
|
173
229
|
|
174
230
|
it 'verify mac osx package parsing with default launchd_service' do
|
175
231
|
resource = MockLoader.new(:osx104).load_resource('launchd_service', 'ssh')
|
176
|
-
|
177
|
-
_(resource.
|
232
|
+
params = Hashie::Mash.new({})
|
233
|
+
_(resource.type).must_equal 'darwin'
|
234
|
+
_(resource.name).must_equal 'org.openbsd.ssh-agent'
|
235
|
+
_(resource.description).must_equal nil
|
178
236
|
_(resource.installed?).must_equal true
|
179
237
|
_(resource.enabled?).must_equal true
|
180
238
|
_(resource.running?).must_equal true
|
239
|
+
_(resource.params).must_equal params
|
181
240
|
end
|
182
241
|
|
183
242
|
# wrlinux
|
184
243
|
it 'verify wrlinux package parsing' do
|
185
244
|
resource = MockLoader.new(:wrlinux).load_resource('service', 'sshd')
|
186
|
-
|
187
|
-
_(resource.
|
245
|
+
params = Hashie::Mash.new({})
|
246
|
+
_(resource.type).must_equal 'sysv'
|
247
|
+
_(resource.name).must_equal 'sshd'
|
248
|
+
_(resource.description).must_equal nil
|
188
249
|
_(resource.installed?).must_equal true
|
189
250
|
_(resource.enabled?).must_equal true
|
190
251
|
_(resource.running?).must_equal true
|
252
|
+
_(resource.params).must_equal params
|
191
253
|
end
|
192
254
|
|
193
255
|
|
194
256
|
# unknown OS
|
195
257
|
it 'verify package handling on unsupported os' do
|
196
258
|
resource = MockLoader.new(:undefined).load_resource('service', 'dhcp')
|
259
|
+
params = Hashie::Mash.new({})
|
197
260
|
_(resource.installed?).must_equal false
|
198
|
-
_(resource.
|
261
|
+
_(resource.description).must_equal nil
|
262
|
+
_(resource.params).must_equal params
|
199
263
|
end
|
200
264
|
|
201
265
|
# runlevel detection
|