memcached (openstack) is no longer in use
[mirror/dsa-puppet.git] / 3rdparty / modules / nova / spec / classes / nova_network_spec.rb
1 require 'spec_helper'
2
3 describe 'nova::network' do
4
5   let :pre_condition do
6     'include nova'
7   end
8
9   let :default_params do
10     {
11       :private_interface => 'eth1',
12       :fixed_range       => '10.0.0.0/32',
13     }
14   end
15
16   let :params do
17     default_params
18   end
19
20   describe 'on debian platforms' do
21
22     let :facts do
23       { :osfamily => 'Debian' }
24     end
25
26     it { should contain_sysctl__value('net.ipv4.ip_forward').with_value('1') }
27
28     describe 'when installing service' do
29
30       it { should contain_package('nova-network').with(
31         'name'   => 'nova-network',
32         'ensure' => 'present',
33         'notify' => 'Service[nova-network]'
34       ) }
35
36       describe 'with enabled as true' do
37         let :params do
38           default_params.merge(:enabled => true)
39         end
40         it { should contain_service('nova-network').with(
41           'name'      => 'nova-network',
42           'ensure'    => 'running',
43           'hasstatus' => true,
44           'enable'    => true
45         )}
46       end
47       describe 'when enabled is set to false' do
48         it { should contain_service('nova-network').with(
49           'name'      => 'nova-network',
50           'ensure'    => 'stopped',
51           'hasstatus' => true,
52           'enable'    => false
53         )}
54       end
55     end
56     describe 'when not installing service' do
57
58       let :params do
59         default_params.merge(:install_service => false)
60       end
61
62       it { should_not contain_package('nova-network') }
63       it { should_not contain_service('nova-network') }
64
65     end
66
67     describe 'when not creating networks' do
68       let :params do
69         default_params.merge(:create_networks => false)
70       end
71       it { should_not contain_nova__manage__network('nova-vm-net') }
72       it { should_not contain_nova__manage__floating('nova-vm-floating') }
73     end
74
75     describe 'when creating networks' do
76       it { should contain_nova__manage__network('nova-vm-net').with(
77         :network      => '10.0.0.0/32',
78         :num_networks => '1'
79       ) }
80       it { should_not contain__nova__manage__floating('nova-vm-floating') }
81       describe 'when number of networks is set' do
82         let :params do
83           default_params.merge(:num_networks => '2')
84         end
85         it { should contain_nova__manage__network('nova-vm-net').with(
86           :num_networks => '2'
87         ) }
88       end
89       describe 'when floating range is set' do
90         let :params do
91           default_params.merge(:floating_range => '10.0.0.0/30')
92         end
93         it { should contain_nova_config('DEFAULT/floating_range').with_value('10.0.0.0/30') }
94         it { should contain_nova__manage__floating('nova-vm-floating').with_network('10.0.0.0/30') }
95       end
96     end
97     describe 'when configuring networks' do
98       describe 'when configuring flatdhcpmanager' do
99         let :params do
100           default_params.merge(:network_manager => 'nova.network.manager.FlatDHCPManager')
101         end
102         it { should contain_class('nova::network::flatdhcp').with(
103           :fixed_range          => '10.0.0.0/32',
104           :public_interface     => nil,
105           :flat_interface       => 'eth1',
106           :flat_network_bridge  => 'br100',
107           :force_dhcp_release   => true,
108           :flat_injected        => false,
109           :dhcp_domain          => 'novalocal',
110           :dhcpbridge           => '/usr/bin/nova-dhcpbridge',
111           :dhcpbridge_flagfile  => '/etc/nova/nova.conf'
112         ) }
113         describe 'when overriding parameters' do
114           let :params do
115             default_params.merge(
116               {
117                 :network_manager  => 'nova.network.manager.FlatDHCPManager',
118                 :public_interface => 'eth0',
119                 :config_overrides =>
120                   {
121                     'flat_network_bridge' => 'br400',
122                     'force_dhcp_release'  => false,
123                     'flat_injected'       => true,
124                     'dhcp_domain'         => 'not-novalocal',
125                     'dhcpbridge'          => '/tmp/bridge',
126                     'dhcpbridge_flagfile' => '/tmp/file',
127                   }
128               }
129             )
130           end
131           it { should contain_class('nova::network::flatdhcp').with(
132             :fixed_range          => '10.0.0.0/32',
133             :public_interface     => 'eth0',
134             :flat_interface       => 'eth1',
135             :flat_network_bridge  => 'br400',
136             #:force_dhcp_release   => false,
137             :flat_injected        => true,
138             :dhcp_domain          => 'not-novalocal',
139             :dhcpbridge           => '/tmp/bridge',
140             :dhcpbridge_flagfile  => '/tmp/file'
141           ) }
142
143         end
144       end
145       describe 'when configuring flatmanager' do
146         let :params do
147           default_params.merge(:network_manager => 'nova.network.manager.FlatManager')
148         end
149         it { should contain_class('nova::network::flat').with(
150           :fixed_range         => '10.0.0.0/32',
151           :public_interface    => nil,
152           :flat_interface      => 'eth1',
153           :flat_network_bridge => 'br100'
154         ) }
155         describe 'when overriding flat network params' do
156           let :params do
157             default_params.merge(
158               {
159                 :network_manager  => 'nova.network.manager.FlatManager',
160                 :public_interface => 'eth0',
161                 :config_overrides => {'flat_network_bridge' => 'br400' }
162               }
163             )
164           end
165           it { should contain_class('nova::network::flat').with(
166             :public_interface    => 'eth0',
167             :flat_network_bridge => 'br400'
168           ) }
169           end
170       end
171       describe 'when configuring vlan' do
172         let :params do
173           default_params.merge(:network_manager => 'nova.network.manager.VlanManager')
174         end
175         it { should contain_class('nova::network::vlan').with(
176           :fixed_range         => '10.0.0.0/32',
177           :public_interface    => nil,
178           :vlan_interface      => 'eth1',
179           :force_dhcp_release  => true,
180           :dhcp_domain         => 'novalocal',
181           :dhcpbridge          => '/usr/bin/nova-dhcpbridge',
182           :dhcpbridge_flagfile => '/etc/nova/nova.conf'
183         ) }
184         describe 'when overriding parameters' do
185           let :params do
186             default_params.merge(
187               {
188               }
189             )
190           end
191         end
192       end
193     end
194     describe 'with package version' do
195       let :params do
196         default_params.merge(:ensure_package => '2012.1-2')
197       end
198       it { should contain_package('nova-network').with(
199         'ensure' => '2012.1-2'
200       )}
201     end
202   end
203   describe 'on rhel' do
204     let :facts do
205       { :osfamily => 'RedHat' }
206     end
207     it { should contain_service('nova-network').with(
208       'name'      => 'openstack-nova-network',
209       'ensure'    => 'stopped',
210       'hasstatus' => true,
211       'enable'    => false
212     )}
213     it { should contain_package('nova-network').with_name('openstack-nova-network') }
214   end
215 end