X-Git-Url: https://git.donarmstrong.com/?p=dsa-puppet.git;a=blobdiff_plain;f=3rdparty%2Fmodules%2Fneutron%2Fspec%2Fclasses%2Fneutron_plugins_linuxbridge_spec.rb;fp=3rdparty%2Fmodules%2Fneutron%2Fspec%2Fclasses%2Fneutron_plugins_linuxbridge_spec.rb;h=c27aab8c0cdcf7068cc4f15b82f6779d726c4a80;hp=0000000000000000000000000000000000000000;hb=4631045ebb77ee8622f6fa09277a50c372bcc02e;hpb=3d4dc4fd9e59bd0e07646c99f6b356c7d9d859aa diff --git a/3rdparty/modules/neutron/spec/classes/neutron_plugins_linuxbridge_spec.rb b/3rdparty/modules/neutron/spec/classes/neutron_plugins_linuxbridge_spec.rb new file mode 100644 index 00000000..c27aab8c --- /dev/null +++ b/3rdparty/modules/neutron/spec/classes/neutron_plugins_linuxbridge_spec.rb @@ -0,0 +1,92 @@ +require 'spec_helper' + +describe 'neutron::plugins::linuxbridge' do + + let :pre_condition do + "class { 'neutron': rabbit_password => 'passw0rd' }" + end + + let :params do + { :sql_connection => false, + :network_vlan_ranges => 'physnet0:100:109', + :tenant_network_type => 'vlan', + :package_ensure => 'installed' + } + end + + shared_examples_for 'neutron linuxbridge plugin' do + + it { should contain_class('neutron::params') } + + it 'installs neutron linuxbridge plugin package' do + should contain_package('neutron-plugin-linuxbridge').with( + :ensure => params[:package_ensure], + :name => platform_params[:linuxbridge_plugin_package] + ) + end + + it 'configures linuxbridge_conf.ini' do + should contain_neutron_plugin_linuxbridge('VLANS/tenant_network_type').with( + :value => params[:tenant_network_type] + ) + should contain_neutron_plugin_linuxbridge('VLANS/network_vlan_ranges').with( + :value => params[:network_vlan_ranges] + ) + end + + it 'should create plugin symbolic link' do + should contain_file('/etc/neutron/plugin.ini').with( + :ensure => 'link', + :target => '/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini', + :require => 'Package[neutron-plugin-linuxbridge]' + ) + end + end + + context 'on Debian platforms' do + let :facts do + { :osfamily => 'Debian' } + end + + let :platform_params do + { :linuxbridge_plugin_package => 'neutron-plugin-linuxbridge' } + end + + context 'on Ubuntu operating systems' do + before do + facts.merge!({:operatingsystem => 'Ubuntu'}) + end + + it 'configures /etc/default/neutron-server' do + should contain_file_line('/etc/default/neutron-server:NEUTRON_PLUGIN_CONFIG').with( + :path => '/etc/default/neutron-server', + :match => '^NEUTRON_PLUGIN_CONFIG=(.*)$', + :line => 'NEUTRON_PLUGIN_CONFIG=/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini', + :require => ['Package[neutron-plugin-linuxbridge]', 'Package[neutron-server]'], + :notify => 'Service[neutron-server]' + ) + end + it_configures 'neutron linuxbridge plugin' + end + + context 'on Debian operating systems' do + before do + facts.merge!({:operatingsystem => 'Debian'}) + end + + it_configures 'neutron linuxbridge plugin' + end + end + + context 'on RedHat platforms' do + let :facts do + { :osfamily => 'RedHat' } + end + + let :platform_params do + { :linuxbridge_plugin_package => 'openstack-neutron-linuxbridge' } + end + + it_configures 'neutron linuxbridge plugin' + end +end