3 describe 'neutron::agents::lbaas' do
6 "class { 'neutron': rabbit_password => 'passw0rd' }"
13 let :default_params do
14 { :package_ensure => 'present',
17 :interface_driver => 'neutron.agent.linux.interface.OVSInterfaceDriver',
18 :device_driver => 'neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver',
19 :use_namespaces => true,
20 :manage_haproxy_package => true
25 shared_examples_for 'neutron lbaas agent' do
27 default_params.merge(params)
30 it { should contain_class('neutron::params') }
32 it_configures 'haproxy lbaas_driver'
33 it_configures 'haproxy lbaas_driver without package'
35 it 'configures lbaas_agent.ini' do
36 should contain_neutron_lbaas_agent_config('DEFAULT/debug').with_value(p[:debug]);
37 should contain_neutron_lbaas_agent_config('DEFAULT/interface_driver').with_value(p[:interface_driver]);
38 should contain_neutron_lbaas_agent_config('DEFAULT/device_driver').with_value(p[:device_driver]);
39 should contain_neutron_lbaas_agent_config('DEFAULT/use_namespaces').with_value(p[:use_namespaces]);
40 should contain_neutron_lbaas_agent_config('haproxy/user_group').with_value(platform_params[:nobody_user_group]);
43 it 'installs neutron lbaas agent package' do
44 if platform_params.has_key?(:lbaas_agent_package)
45 should contain_package('neutron-lbaas-agent').with(
46 :name => platform_params[:lbaas_agent_package],
47 :ensure => p[:package_ensure]
49 should contain_package('neutron').with_before(/Package\[neutron-lbaas-agent\]/)
50 should contain_package('neutron-lbaas-agent').with_before(/Neutron_lbaas_agent_config\[.+\]/)
51 should contain_package('neutron-lbaas-agent').with_before(/Neutron_config\[.+\]/)
53 should contain_package('neutron').with_before(/Neutron_lbaas_agent_config\[.+\]/)
57 it 'configures neutron lbaas agent service' do
58 should contain_service('neutron-lbaas-service').with(
59 :name => platform_params[:lbaas_agent_service],
62 :require => 'Class[Neutron]'
66 context 'with manage_service as false' do
68 params.merge!(:manage_service => false)
70 it 'should not start/stop service' do
71 should contain_service('neutron-lbaas-service').without_ensure
76 shared_examples_for 'haproxy lbaas_driver' do
77 it 'installs haproxy packages' do
78 if platform_params.has_key?(:lbaas_agent_package)
79 should contain_package(platform_params[:haproxy_package]).with_before('Package[neutron-lbaas-agent]')
81 should contain_package(platform_params[:haproxy_package]).with(
87 shared_examples_for 'haproxy lbaas_driver without package' do
92 class { 'neutron': rabbit_password => 'passw0rd' }"
95 params.merge!(:manage_haproxy_package => false)
97 it 'installs haproxy package via haproxy module' do
98 should contain_package(platform_params[:haproxy_package]).with(
104 context 'on Debian platforms' do
106 { :osfamily => 'Debian',
107 :concat_basedir => '/dne'
111 let :platform_params do
112 { :haproxy_package => 'haproxy',
113 :lbaas_agent_package => 'neutron-lbaas-agent',
114 :nobody_user_group => 'nogroup',
115 :lbaas_agent_service => 'neutron-lbaas-agent' }
118 it_configures 'neutron lbaas agent'
121 context 'on RedHat platforms' do
123 { :osfamily => 'RedHat',
124 :concat_basedir => '/dne'
128 let :platform_params do
129 { :haproxy_package => 'haproxy',
130 :nobody_user_group => 'nobody',
131 :lbaas_agent_service => 'neutron-lbaas-agent' }
134 it_configures 'neutron lbaas agent'