require 'spec_helper' describe 'neutron::plugins::linuxbridge' do let :pre_condition do "class { 'neutron': rabbit_password => 'passw0rd' }" end let :params do { :sql_connection => 'mysql://user:pass@db/db', :network_vlan_ranges => 'physnet0:100:109', :tenant_network_type => 'vlan', :package_ensure => 'installed' } end shared_examples_for 'neutron linuxbridge plugin' do it { should include_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('DATABASE/sql_connection').with( :value => params[:sql_connection] ) 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 end context 'on Debian platforms' do let :facts do { :osfamily => 'Debian' } end let :platform_params do { :linuxbridge_plugin_package => 'neutron-plugin-linuxbridge' } end it_configures 'neutron linuxbridge plugin' it 'configures /etc/default/neutron-server' do should contain_file_line('/etc/default/neutron-server:NEUTRON_PLUGIN_CONFIG').with( :line => 'NEUTRON_PLUGIN_CONFIG=/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini' ) 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