20eaafc834d59a9860e5be6a84ff016f7db4d481
[mirror/dsa-puppet.git] / 3rdparty / modules / nova / spec / classes / nova_network_neutron_spec.rb
1 require 'spec_helper'
2
3 describe 'nova::network::neutron' do
4
5   let :default_params do
6     { :neutron_auth_strategy           => 'keystone',
7       :neutron_url                     => 'http://127.0.0.1:9696',
8       :neutron_url_timeout             => '30',
9       :neutron_admin_tenant_name       => 'services',
10       :neutron_default_tenant_id       => 'default',
11       :neutron_region_name             => 'RegionOne',
12       :neutron_admin_username          => 'neutron',
13       :neutron_admin_auth_url          => 'http://127.0.0.1:35357/v2.0',
14       :neutron_ovs_bridge              => 'br-int',
15       :neutron_extension_sync_interval => '600',
16       :security_group_api              => 'neutron',
17       :firewall_driver                 => 'nova.virt.firewall.NoopFirewallDriver',
18       :vif_plugging_is_fatal           => true,
19       :vif_plugging_timeout            => '300',
20       :dhcp_domain                     => 'novalocal'
21     }
22   end
23
24   let :params do
25     { :neutron_admin_password => 's3cr3t' }
26   end
27
28
29   context 'with required parameters' do
30     it 'configures neutron endpoint in nova.conf' do
31       should contain_nova_config('neutron/admin_password').with_value(params[:neutron_admin_password]).with_secret(true)
32       should contain_nova_config('DEFAULT/network_api_class').with_value('nova.network.neutronv2.api.API')
33       should contain_nova_config('DEFAULT/dhcp_domain').with_value(default_params[:dhcp_domain])
34       should contain_nova_config('neutron/auth_strategy').with_value(default_params[:neutron_auth_strategy])
35       should contain_nova_config('neutron/url').with_value(default_params[:neutron_url])
36       should contain_nova_config('neutron/url_timeout').with_value(default_params[:neutron_url_timeout])
37       should contain_nova_config('neutron/admin_tenant_name').with_value(default_params[:neutron_admin_tenant_name])
38       should contain_nova_config('neutron/default_tenant_id').with_value(default_params[:neutron_default_tenant_id])
39       should contain_nova_config('neutron/region_name').with_value(default_params[:neutron_region_name])
40       should contain_nova_config('neutron/admin_username').with_value(default_params[:neutron_admin_username])
41       should contain_nova_config('neutron/admin_auth_url').with_value(default_params[:neutron_admin_auth_url])
42       should contain_nova_config('neutron/extension_sync_interval').with_value(default_params[:neutron_extension_sync_interval])
43     end
44     it 'configures Nova to use Neutron Bridge Security Groups and Firewall' do
45       should contain_nova_config('DEFAULT/firewall_driver').with_value(default_params[:firewall_driver])
46       should contain_nova_config('DEFAULT/security_group_api').with_value(default_params[:security_group_api])
47       should contain_nova_config('neutron/ovs_bridge').with_value(default_params[:neutron_ovs_bridge])
48     end
49     it 'configures neutron vif plugging events in nova.conf' do
50       should contain_nova_config('DEFAULT/vif_plugging_is_fatal').with_value(default_params[:vif_plugging_is_fatal])
51       should contain_nova_config('DEFAULT/vif_plugging_timeout').with_value(default_params[:vif_plugging_timeout])
52     end
53   end
54
55   context 'when overriding class parameters' do
56     before do
57       params.merge!(
58         :neutron_url                     => 'http://10.0.0.1:9696',
59         :neutron_url_timeout             => '30',
60         :neutron_admin_tenant_name       => 'openstack',
61         :neutron_default_tenant_id       => 'default',
62         :neutron_region_name             => 'RegionTwo',
63         :neutron_admin_username          => 'neutron2',
64         :neutron_admin_auth_url          => 'http://10.0.0.1:35357/v2.0',
65         :network_api_class               => 'network.api.class',
66         :security_group_api              => 'nova',
67         :firewall_driver                 => 'nova.virt.firewall.IptablesFirewallDriver',
68         :neutron_ovs_bridge              => 'br-int',
69         :neutron_extension_sync_interval => '600',
70         :vif_plugging_is_fatal           => false,
71         :vif_plugging_timeout            => '0',
72         :dhcp_domain                     => 'foo'
73       )
74     end
75
76     it 'configures neutron endpoint in nova.conf' do
77       should contain_nova_config('neutron/auth_strategy').with_value(default_params[:neutron_auth_strategy])
78       should contain_nova_config('neutron/admin_password').with_value(params[:neutron_admin_password]).with_secret(true)
79       should contain_nova_config('DEFAULT/network_api_class').with_value('network.api.class')
80       should contain_nova_config('DEFAULT/dhcp_domain').with_value(params[:dhcp_domain])
81       should contain_nova_config('neutron/url').with_value(params[:neutron_url])
82       should contain_nova_config('neutron/url_timeout').with_value(params[:neutron_url_timeout])
83       should contain_nova_config('neutron/admin_tenant_name').with_value(params[:neutron_admin_tenant_name])
84       should contain_nova_config('neutron/default_tenant_id').with_value(params[:neutron_default_tenant_id])
85       should contain_nova_config('neutron/region_name').with_value(params[:neutron_region_name])
86       should contain_nova_config('neutron/admin_username').with_value(params[:neutron_admin_username])
87       should contain_nova_config('neutron/admin_auth_url').with_value(params[:neutron_admin_auth_url])
88       should contain_nova_config('neutron/extension_sync_interval').with_value(params[:neutron_extension_sync_interval])
89     end
90     it 'configures Nova to use Neutron Security Groups and Firewall' do
91       should contain_nova_config('DEFAULT/firewall_driver').with_value(params[:firewall_driver])
92       should contain_nova_config('DEFAULT/security_group_api').with_value(params[:security_group_api])
93       should contain_nova_config('neutron/ovs_bridge').with_value(params[:neutron_ovs_bridge])
94     end
95     it 'configures neutron vif plugging events in nova.conf' do
96       should contain_nova_config('DEFAULT/vif_plugging_is_fatal').with_value(params[:vif_plugging_is_fatal])
97       should contain_nova_config('DEFAULT/vif_plugging_timeout').with_value(params[:vif_plugging_timeout])
98     end
99   end
100 end