forked from puppetlabs/puppetlabs-ntp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathntp_parameters_spec.rb
169 lines (146 loc) · 4.19 KB
/
ntp_parameters_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
require 'spec_helper_acceptance'
case fact('osfamily')
when 'FreeBSD'
packagename = 'net/ntp'
when 'Gentoo'
packagename = 'net-misc/ntp'
when 'Linux'
case fact('operatingsystem')
when 'ArchLinux'
packagename = 'ntp'
when 'Gentoo'
packagename = 'net-misc/ntp'
end
when 'AIX'
packagename = 'bos.net.tcp.client'
when 'Solaris'
packagename = ['SUNWntpr','SUNWntpu']
else
packagename = 'ntp'
end
describe "ntp class:", :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
it 'applies successfully' do
pp = "class { 'ntp': }"
apply_manifest(pp, :catch_failures => true) do |r|
expect(r.stderr).not_to match(/error/i)
end
end
describe 'autoconfig' do
it 'raises a deprecation warning' do
pp = "class { 'ntp': autoupdate => true }"
apply_manifest(pp, :catch_failures => true) do |r|
expect(r.stdout).to match(/autoupdate parameter has been deprecated and replaced with package_ensure/)
end
end
end
describe 'config' do
it 'sets the ntp.conf location' do
pp = "class { 'ntp': config => '/etc/antp.conf' }"
apply_manifest(pp, :catch_failures => true)
end
describe file('/etc/antp.conf') do
it { should be_file }
end
end
describe 'config_template' do
it 'sets up template' do
modulepath = default['distmoduledir']
shell("mkdir -p #{modulepath}/test/templates")
shell("echo 'testcontent' >> #{modulepath}/test/templates/ntp.conf")
end
it 'sets the ntp.conf location' do
pp = "class { 'ntp': config_template => 'test/ntp.conf' }"
apply_manifest(pp, :catch_failures => true)
end
describe file('/etc/ntp.conf') do
it { should be_file }
it { should contain 'testcontent' }
end
end
describe 'driftfile' do
it 'sets the driftfile location' do
pp = "class { 'ntp': driftfile => '/tmp/driftfile' }"
apply_manifest(pp, :catch_failures => true)
end
describe file('/etc/ntp.conf') do
it { should be_file }
it { should contain 'driftfile /tmp/driftfile' }
end
end
describe 'keys' do
it 'enables the key parameters' do
pp = <<-EOS
class { 'ntp':
keys_enable => true,
keys_file => '/etc/ntp/keys',
keys_controlkey => '/etc/ntp/controlkey',
keys_requestkey => '1',
keys_trusted => [ '1', '2' ],
}
EOS
# Rely on a shell command instead of a file{} here to avoid loops
# within puppet when it tries to manage /etc/ntp/keys before /etc/ntp.
shell("mkdir -p /etc/ntp && echo '1 M AAAABBBB' >> /etc/ntp/keys")
apply_manifest(pp, :catch_failures => true)
end
describe file('/etc/ntp.conf') do
it { should be_file }
it { should contain 'keys /etc/ntp/keys' }
it { should contain 'controlkey /etc/ntp/controlkey' }
it { should contain 'requestkey 1' }
it { should contain 'trustedkey 1 2' }
end
end
describe 'package' do
it 'installs the right package' do
pp = <<-EOS
class { 'ntp':
package_ensure => present,
package_name => #{Array(packagename).inspect},
}
EOS
apply_manifest(pp, :catch_failures => true)
end
Array(packagename).each do |package|
describe package(package) do
it { should be_installed }
end
end
end
describe 'panic => false' do
it 'enables the tinker panic setting' do
pp = <<-EOS
class { 'ntp':
panic => false,
}
EOS
apply_manifest(pp, :catch_failures => true)
end
describe file('/etc/ntp.conf') do
it { should contain 'tinker panic' }
end
end
describe 'panic => true' do
it 'disables the tinker panic setting' do
pp = <<-EOS
class { 'ntp':
panic => true,
}
EOS
apply_manifest(pp, :catch_failures => true)
end
describe file('/etc/ntp.conf') do
it { should_not contain 'tinker panic 0' }
end
end
describe 'udlc' do
it 'adds a udlc' do
pp = "class { 'ntp': udlc => true }"
apply_manifest(pp, :catch_failures => true)
end
describe file('/etc/ntp.conf') do
it { should be_file }
it { should contain '127.127.1.0' }
end
end
end