forked from puppetlabs/puppetlabs-haproxy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbasic_spec.rb
127 lines (118 loc) · 3.21 KB
/
basic_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
require 'spec_helper_acceptance'
# C9708 C9709 WONTFIX
describe "configuring haproxy" do
# C9961
describe 'not managing the service' do
it 'should not listen on any ports' do
pp = <<-EOS
class { 'haproxy':
service_manage => false,
}
haproxy::listen { 'stats':
ipaddress => '127.0.0.1',
ports => ['9090','9091'],
options => {
'mode' => 'http',
'stats' => ['uri /','auth puppet:puppet'],
},
}
haproxy::listen { 'test00':
ipaddress => '127.0.0.1',
ports => '80',
}
EOS
apply_manifest(pp, :catch_failures => true)
end
describe port('9090') do
it { should_not be_listening }
end
describe port('9091') do
it { should_not be_listening }
end
end
describe "configuring haproxy load balancing" do
before :all do
end
describe "multiple ports" do
it 'should be able to listen on an array of ports' do
pp = <<-EOS
class { 'haproxy': }
haproxy::listen { 'stats':
ipaddress => '127.0.0.1',
ports => ['9090','9091'],
mode => 'http',
options => { 'stats' => ['uri /','auth puppet:puppet'], },
}
EOS
apply_manifest(pp, :catch_failures => true)
end
it 'should have stats listening on each port' do
['9090','9091'].each do |port|
shell("/usr/bin/curl -u puppet:puppet localhost:#{port}") do |r|
r.stdout.should =~ /HAProxy/
r.exit_code.should == 0
end
end
end
end
describe "with sort_options_alphabetic false" do
it 'should start' do
pp = <<-EOS
class { 'haproxy::globals':
sort_options_alphabetic => false,
}
class { 'haproxy': }
haproxy::listen { 'stats':
ipaddress => '127.0.0.1',
ports => ['9090','9091'],
mode => 'http',
options => { 'stats' => ['uri /','auth puppet:puppet'], },
}
EOS
apply_manifest(pp, :catch_failures => true)
end
it 'should have stats listening on each port' do
['9090','9091'].each do |port|
shell("/usr/bin/curl -u puppet:puppet localhost:#{port}") do |r|
r.stdout.should =~ /HAProxy/
r.exit_code.should == 0
end
end
end
end
end
# C9934
describe "uninstalling haproxy" do
it 'removes it' do
pp = <<-EOS
class { 'haproxy':
package_ensure => 'absent',
service_ensure => 'stopped',
}
EOS
apply_manifest(pp, :catch_failures => true)
end
describe package('haproxy') do
it { should_not be_installed }
end
end
# C9935 C9939
describe "disabling haproxy" do
it 'stops the service' do
pp = <<-EOS
class { 'haproxy':
service_ensure => 'stopped',
}
haproxy::listen { 'stats':
ipaddress => '127.0.0.1',
ports => '9090',
}
EOS
apply_manifest(pp, :catch_failures => true)
end
describe service('haproxy') do
it { should_not be_running }
it { should_not be_enabled }
end
end
end