fuel-library/tests/noop/spec/hosts/openstack-network/agents/l3_spec.rb

105 lines
3.1 KiB
Ruby

# ROLE: primary-controller
# ROLE: controller
# ROLE: compute
require 'spec_helper'
require 'shared-examples'
manifest = 'openstack-network/agents/l3.pp'
describe manifest do
before(:each) do
Noop.puppet_function_load :is_pkg_installed
MockFunction.new(:is_pkg_installed) do |function|
allow(function).to receive(:call).and_return false
end
end
shared_examples 'catalog' do
let(:node_roles) do
Noop.hiera('roles')
end
let(:network_scheme) do
Noop.hiera_hash('network_scheme', {})
end
let(:prepare) do
Noop.puppet_function('prepare_network_config', network_scheme)
end
let(:br_floating) do
prepare
Noop.puppet_function('get_network_role_property', 'neutron/floating', 'interface')
end
if Noop.hiera('roles').include? 'compute'
context 'neutron-l3-agent on compute' do
na_config = Noop.hiera_hash('neutron_advanced_configuration')
dvr = na_config.fetch('neutron_dvr', false)
if dvr
l2pop = na_config.fetch('neutron_l2_pop', false)
it { should contain_class('neutron::agents::l3').with(
'agent_mode' => 'dvr',
)}
it { should contain_class('neutron::agents::l3').with(
'manage_service' => true
)}
it { should contain_class('neutron::agents::l3').with(
'metadata_port' => '8775'
)}
it { should contain_class('neutron::agents::l3').with(
'enabled' => true
)}
it { should contain_class('neutron::agents::l3').with(
'debug' => Noop.hiera('debug', true)
)}
it { should_not contain_cluster__neutron__l3('default-l3') }
include_examples 'override_resources'
else
it { should_not contain_class('neutron::agents::l3') }
end
end
elsif not (Noop.hiera('roles') & ['neutron', 'primary-neutron']).empty?
context 'with Neutron-l3-agent on neutron node' do
na_config = Noop.hiera_hash('neutron_advanced_configuration')
dvr = na_config.fetch('neutron_dvr', false)
agent_mode = (dvr ? 'dvr_snat' : 'legacy')
ha_agent = na_config.fetch('l3_agent_ha', true)
l2pop = na_config.fetch('neutron_l2_pop', false)
it { should contain_class('neutron::agents::l3').with(
'agent_mode' => agent_mode
)}
it { should contain_class('neutron::agents::l3').with(
'manage_service' => true
)}
it { should contain_class('neutron::agents::l3').with(
'metadata_port' => '8775'
)}
it { should contain_class('neutron::agents::l3').with(
'enabled' => true
)}
it { should contain_class('neutron::agents::l3').with(
'debug' => Noop.hiera('debug', true)
)}
if ha_agent
it { should contain_cluster__neutron__l3('default-l3').with(
'primary' => (node_roles.include? 'primary-neutron')
)}
else
it { should_not contain_cluster__neutron__l3('default-l3') }
end
include_examples 'override_resources'
end
end
end
test_ubuntu_and_centos manifest
end