]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/neutron/spec/classes/neutron_plugins_linuxbridge_spec.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / neutron / spec / classes / neutron_plugins_linuxbridge_spec.rb
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 (file)
index 0000000..c27aab8
--- /dev/null
@@ -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