From 2924d5511738279b0a37e8de0a30a70af25d3c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Charlier?= Date: Fri, 1 Jun 2012 21:05:44 +0200 Subject: [PATCH] Add DHCP options to nova::network::vlan --- manifests/network.pp | 18 ++++++++++++------ manifests/network/vlan.pp | 18 ++++++++++++------ spec/classes/nova_network_spec.rb | 11 +++++++---- spec/classes/nova_network_vlan_spec.rb | 11 ++++++++++- 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/manifests/network.pp b/manifests/network.pp index cbdc61227..44d01830f 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -21,7 +21,7 @@ class nova::network( $network_manager = 'nova.network.manager.FlatDHCPManager', $config_overrides = {}, $create_networks = true, - $ensure_package = 'present', + $ensure_package = 'present', $install_service = true ) { @@ -98,13 +98,19 @@ class nova::network( } 'nova.network.manager.VlanManager': { - $vlan_start = $config_overrides['vlan_start'] + $vlan_start = $config_overrides['vlan_start'] + $force_dhcp_release = $config_overrides['force_dhcp_release'] + $dhcpbridge = $config_overrides['dhcpbridge'] + $dhcpbridge_flagfile = $config_overrides['dhcpbridge_flagfile'] class { 'nova::network::vlan': - fixed_range => $fixed_range, - public_interface => $public_interface, - vlan_interface => $private_interface, - vlan_start => $vlan_start, + fixed_range => $fixed_range, + public_interface => $public_interface, + vlan_interface => $private_interface, + vlan_start => $vlan_start, + force_dhcp_release => $force_dhcp_release, + dhcpbridge => $dhcpbridge, + dhcpbridge_flagfile => $dhcpbridge_flagfile, } } default: { diff --git a/manifests/network/vlan.pp b/manifests/network/vlan.pp index 9907a60f7..b8f576f8c 100644 --- a/manifests/network/vlan.pp +++ b/manifests/network/vlan.pp @@ -2,8 +2,11 @@ class nova::network::vlan ( $fixed_range, $vlan_interface, - $public_interface = undef, - $vlan_start = '300' + $public_interface = undef, + $vlan_start = '300', + $force_dhcp_release = true, + $dhcpbridge = '/usr/bin/nova-dhcpbridge', + $dhcpbridge_flagfile = '/etc/nova/nova.conf' ) { if $public_interface { @@ -11,10 +14,13 @@ class nova::network::vlan ( } nova_config { - 'network_manager': value => 'nova.network.manager.VlanManager'; - 'fixed_range': value => $fixed_range; - 'vlan_interface': value => $vlan_interface; - 'vlan_start': value => $vlan_start; + 'network_manager': value => 'nova.network.manager.VlanManager'; + 'fixed_range': value => $fixed_range; + 'vlan_interface': value => $vlan_interface; + 'vlan_start': value => $vlan_start; + 'force_dhcp_release': value => $force_dhcp_release; + 'dhcpbridge': value => $dhcpbridge; + 'dhcpbridge_flagfile': value => $dhcpbridge_flagfile; } } diff --git a/spec/classes/nova_network_spec.rb b/spec/classes/nova_network_spec.rb index 7f2400a4b..7c6137be9 100644 --- a/spec/classes/nova_network_spec.rb +++ b/spec/classes/nova_network_spec.rb @@ -168,9 +168,12 @@ describe 'nova::network' do default_params.merge(:network_manager => 'nova.network.manager.VlanManager') end it { should contain_class('nova::network::vlan').with( - :fixed_range => '10.0.0.0/32', - :public_interface => nil, - :vlan_interface => 'eth1' + :fixed_range => '10.0.0.0/32', + :public_interface => nil, + :vlan_interface => 'eth1', + :force_dhcp_release => true, + :dhcpbridge => '/usr/bin/nova-dhcpbridge', + :dhcpbridge_flagfile => '/etc/nova/nova.conf' ) } describe 'when overriding parameters' do let :params do @@ -189,7 +192,7 @@ describe 'nova::network' do it { should contain_package('nova-network').with( 'ensure' => '2012.1-2' )} - end + end end describe 'on rhel' do let :facts do diff --git a/spec/classes/nova_network_vlan_spec.rb b/spec/classes/nova_network_vlan_spec.rb index c0057701e..67f5c84ea 100644 --- a/spec/classes/nova_network_vlan_spec.rb +++ b/spec/classes/nova_network_vlan_spec.rb @@ -15,6 +15,9 @@ describe 'nova::network::vlan' do it { should contain_nova_config('fixed_range').with_value('10.0.0.0/32') } it { should contain_nova_config('vlan_start').with_value('300') } it { should contain_nova_config('vlan_interface').with_value('eth1') } + it { should contain_nova_config('force_dhcp_release').with_value('true') } + it { should contain_nova_config('dhcpbridge').with_value('/usr/bin/nova-dhcpbridge') } + it { should contain_nova_config('dhcpbridge_flagfile').with_value('/etc/nova/nova.conf') } end @@ -25,7 +28,10 @@ describe 'nova::network::vlan' do :vlan_interface => 'eth1', :fixed_range => '10.0.0.0/32', :public_interface => 'eth0', - :vlan_start => '100' + :vlan_start => '100', + :force_dhcp_release => false, + :dhcpbridge => '/usr/bin/dhcpbridge', + :dhcpbridge_flagfile => '/etc/nova/nova-dhcp.conf' } end @@ -34,5 +40,8 @@ describe 'nova::network::vlan' do it { should contain_nova_config('fixed_range').with_value('10.0.0.0/32') } it { should contain_nova_config('vlan_start').with_value('100') } it { should contain_nova_config('vlan_interface').with_value('eth1') } + it { should contain_nova_config('force_dhcp_release').with_value('false') } + it { should contain_nova_config('dhcpbridge').with_value('/usr/bin/dhcpbridge') } + it { should contain_nova_config('dhcpbridge_flagfile').with_value('/etc/nova/nova-dhcp.conf') } end end