Merge "only set network_vlan_ranges for vlan network types"

This commit is contained in:
Jenkins 2013-05-21 21:27:49 +00:00 committed by Gerrit Code Review
commit df12cf6d61
2 changed files with 80 additions and 4 deletions

View File

@ -5,13 +5,10 @@
class quantum::plugins::ovs (
$package_ensure = 'present',
$sql_connection = 'sqlite:////var/lib/quantum/ovs.sqlite',
$sql_max_retries = 10,
$reconnect_interval = 2,
$tenant_network_type = 'vlan',
# NB: don't need tunnel ID range when using VLANs,
# *but* you do need the network vlan range regardless of type,
# because the list of networks there is still important
@ -54,7 +51,6 @@ class quantum::plugins::ovs (
'DATABASE/sql_connection': value => $sql_connection;
'DATABASE/sql_max_retries': value => $sql_max_retries;
'DATABASE/reconnect_interval': value => $reconnect_interval;
'OVS/network_vlan_ranges': value => $network_vlan_ranges;
'OVS/tenant_network_type': value => $tenant_network_type;
}
@ -68,6 +64,14 @@ class quantum::plugins::ovs (
}
}
if ($tenant_network_type == 'vlan') or ($tenant_network_type == 'flat') {
quantum_plugin_ovs {
'OVS/network_vlan_ranges': value => $network_vlan_ranges;
}
} else {
quantum_plugin_ovs { 'OVS/network_vlan_ranges': ensure => absent }
}
if $::osfamily == 'Redhat' {
file {'/etc/quantum/plugin.ini':
ensure => link,

View File

@ -6,13 +6,73 @@ describe 'quantum::plugins::ovs' do
"class { 'quantum': rabbit_password => 'passw0rd' }"
end
let :default_params do
{
:package_ensure => 'present',
:sql_connection => 'sqlite:////var/lib/quantum/ovs.sqlite',
:sql_max_retries => 10,
:reconnect_interval => 2,
:tenant_network_type => 'vlan',
:network_vlan_ranges => 'physnet1:1000:2000',
:tunnel_id_ranges => '1:1000'
}
end
let :params do
{}
end
shared_examples_for 'quantum ovs plugin' do
let :p do
default_params.merge(params)
end
it 'should perform default configuration of' do
should contain_quantum_plugin_ovs('OVS/network_vlan_ranges').\
with_value(p[:network_vlan_ranges])
should contain_quantum_plugin_ovs('DATABASE/sql_connection').with_value(p[:sql_connection])
should contain_quantum_plugin_ovs('DATABASE/sql_max_retries').with_value(p[:sql_max_retries])
should contain_quantum_plugin_ovs('DATABASE/reconnect_interval').with_value(p[:reconnect_interval])
should contain_quantum_plugin_ovs('OVS/tenant_network_type').with_value(p[:tenant_network_type])
should_not contain_quantum_plugin_ovs('OVS/tunnel_id_ranges')
should contain_quantum_plugin_ovs('OVS/network_vlan_ranges').with_value(p[:network_vlan_ranges])
should contain_package('quantum-plugin-ovs').with(
:name => platform_params[:ovs_server_package],
:ensure => p[:package_ensure]
)
end
context 'with gre tunneling' do
let :params do
{ :tenant_network_type => 'gre' }
end
it 'should perform gre network configuration' do
should contain_quantum_plugin_ovs('OVS/network_vlan_ranges').with_ensure('absent')
should contain_quantum_plugin_ovs('OVS/tenant_network_type').with_value(p[:tenant_network_type])
should contain_quantum_plugin_ovs('OVS/tunnel_id_ranges').with_value(p[:tunnel_id_ranges])
end
end
context 'with a flat network' do
let :params do
{ :tenant_network_type => 'flat' }
end
it { should contain_quantum_plugin_ovs('OVS/network_vlan_ranges').with_value(p[:network_vlan_ranges]) }
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
let :platform_params do
{ :ovs_server_package => 'quantum-plugin-openvswitch' }
end
it { should contain_class('quantum::plugins::ovs') }
it_configures 'quantum ovs plugin'
end
context 'on RedHat platforms' do
@ -20,6 +80,18 @@ describe 'quantum::plugins::ovs' do
{ :osfamily => 'RedHat' }
end
let :platform_params do
{ :ovs_server_package => 'openstack-quantum-openvswitch' }
end
it { should contain_class('quantum::plugins::ovs') }
it 'should perform redhat specific configuration' do
should contain_file('/etc/quantum/plugin.ini').with(
:ensure => 'link',
:target => '/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini',
:require => 'Package[quantum-plugin-ovs]'
)
end
it_configures 'quantum ovs plugin'
end
end