-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
ticket_5477_master_not_dectect_sitepp.rb
60 lines (49 loc) · 1.6 KB
/
ticket_5477_master_not_dectect_sitepp.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
# In 2.6, compile does not fail when site.pp does not exist.
#
# However, if a catalog is compiled when site.pp does not exist,
# puppetmaster does not detect when site.pp is created. This requires a restart
#
test_name "Ticket 5477, Puppet Master does not detect newly created site.pp file"
tag 'audit:high',
'audit:integration',
'audit:refactor', # Use block style `test_name`
'server'
testdir = master.tmpdir('missing_site_pp')
manifest_file = "#{testdir}/environments/production/manifests/site.pp"
apply_manifest_on(master, <<-PP, :catch_failures => true)
File {
ensure => directory,
mode => "0750",
owner => #{master.puppet['user']},
group => #{master.puppet['group']},
}
file {
'#{testdir}':;
'#{testdir}/environments':;
'#{testdir}/environments/production':;
'#{testdir}/environments/production/manifests':;
}
PP
master_opts = {
'main' => {
'environmentpath' => "#{testdir}/environments",
'filetimeout' => 1,
'environment_timeout' => 0,
}
}
with_puppet_running_on master, master_opts, testdir do
# Run test on Agents
step "Agent: agent --test"
on(agents, puppet('agent', "-t"), :acceptable_exit_codes => [0,2])
# Create a new site.pp
step "Master: create basic site.pp file"
create_remote_file master, manifest_file, "notify{ticket_5477_notify:}"
on master, "chmod 644 #{manifest_file}"
sleep 3
step "Agent: puppet agent --test"
agents.each do |host|
on(host, puppet('agent', "-t"), :acceptable_exit_codes => [2]) do |result|
assert_match(/ticket_5477_notify/, result.stdout, "#{host}: Site.pp not detected on Puppet Master")
end
end
end