puppet-neutron/spec/classes/neutron_agents_n1kv_vem_spec.rb
Dulanjalie Ganegedara ba0eb6f2f6 Adding portdb and fastpath_flood to n1kv.conf
Also need to remove installing explicit installation of openvswitch
and call vswitch::ovs instead.
Adding testcases to neutron_agents_n1kv_vem_spec.rb and fixing an
error in neutron_plugins_ml2_spec.rb

Change-Id: I2b4ada801610d7081ac3e2469bcacd6ea5ec8e7d
Closes-Bug: 1421449
2015-02-17 13:26:59 -08:00

216 lines
5.9 KiB
Ruby

require 'spec_helper'
describe 'neutron::agents::n1kv_vem' do
let :facts do
{ :osfamily => 'RedHat' }
end
it 'should have a n1kv-vem config file' do
should contain_file('/etc/n1kv/n1kv.conf').with(
:ensure => 'present',
:owner => 'root',
:group => 'root',
:mode => '0664'
)
end
it 'install n1kv-vem' do
should contain_package('libnl').with_before('Package[nexus1000v]')
should contain_service('openvswitch').with_notify('Package[nexus1000v]')
should contain_package('nexus1000v').with_notify('Service[nexus1000v]')
should contain_service('nexus1000v').with_ensure('running')
end
context 'with local file vem rpm' do
let :params do
{
:n1kv_source => 'vem.rpm'
}
end
it 'verify dependency' do
should contain_package('nexus1000v').with_source('/var/n1kv/vem.rpm')
should contain_file('/var/n1kv/vem.rpm').that_requires('File[/var/n1kv]')
should contain_file('/var/n1kv/vem.rpm').with(
:owner => 'root',
:group => 'root',
:mode => '0664'
)
end
end
context 'remote vem rpm' do
let :params do
{
:n1kv_source => 'http://www.cisco.com/repo'
}
end
it 'verify dependency' do
should contain_package('nexus1000v').without_source
should contain_yumrepo('cisco-vem-repo').with(
:baseurl => 'http://www.cisco.com/repo',
:enabled => 1
)
end
end
it 'execute reread config upon config change' do
should contain_exec('vemcmd reread config') \
.that_subscribes_to('File[/etc/n1kv/n1kv.conf]')
end
context 'verify n1kv.conf default' do
let :params do
{
:n1kv_vsm_ip => '9.0.0.1',
:n1kv_vsm_domain_id => 900,
:host_mgmt_intf => 'eth9',
:portdb => 'ovs',
:fastpath_flood => 'disable'
}
end
it do
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^l3control-ipaddr 9.0.0.1/)
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^switch-domain 900/)
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^host-mgmt-intf eth9/)
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^portdb ovs/)
should contain_file('/etc/n1kv/n1kv.conf') \
.without_content(/^phys/)
should contain_file('/etc/n1kv/n1kv.conf') \
.without_content(/^virt/)
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^node-type compute/)
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^fastpath-flood disable/)
end
end
context 'verify node_type' do
let :params do
{
:node_type => 'network',
}
end
it do
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^node-type network/)
should contain_file('/etc/n1kv/n1kv.conf') \
.without_content(/^node-type compute/)
end
end
context 'verify portdb' do
let :params do
{
:portdb => 'vem',
}
end
it do
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^portdb vem/)
should contain_file('/etc/n1kv/n1kv.conf') \
.without_content(/^portdb ovs/)
end
end
context 'verify fastpath_flood' do
let :params do
{
:fastpath_flood => 'enable',
}
end
it do
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^fastpath-flood enable/)
should contain_file('/etc/n1kv/n1kv.conf') \
.without_content(/^fastpath-flood disable/)
end
end
context 'verify n1kv.conf with uplinks' do
let :params do
{
:uplink_profile => { 'eth1' => 'prof1',
'eth2' => 'prof2'
}
}
end
it do
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^phys eth1 profile prof1/)
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^phys eth2 profile prof2/)
end
end
context 'verify n1kv.conf with vtep info' do
let :params do
{
:vtep_config => { 'vtep1' => { 'profile' => 'profint',
'ipmode' => 'dhcp'
},
'vtep2' => { 'profile' => 'profint',
'ipmode' => 'static',
'ipaddress' => '192.168.1.1',
'netmask' => '255.255.255.0'
}
}
}
end
it do
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^virt vtep1 profile profint mode dhcp/)
should contain_file('/etc/n1kv/n1kv.conf') \
.with_content(/^virt vtep2 profile profint mode static/)
end
end
context 'with manage_service as false' do
let :params do
{
:manage_service => false
}
end
it 'should not start/stop service' do
should contain_service('nexus1000v').without_ensure
end
end
context 'with manage_service true and enable_service false' do
let :params do
{
:manage_service => true,
:enable => false
}
end
it 'should stop service' do
should contain_service('nexus1000v').with_ensure('stopped')
end
end
context 'verify sysctl setting with vteps_in_same_subnet true' do
let :params do
{
:vteps_in_same_subnet => true
}
end
it do
should contain_sysctl__value('net.ipv4.conf.default.rp_filter').with_value('2')
should contain_sysctl__value('net.ipv4.conf.all.rp_filter').with_value('2')
should contain_sysctl__value('net.ipv4.conf.default.arp_ignore').with_value('1')
should contain_sysctl__value('net.ipv4.conf.all.arp_ignore').with_value('1')
should contain_sysctl__value('net.ipv4.conf.all.arp_announce').with_value('2')
should contain_sysctl__value('net.ipv4.conf.default.arp_announce').with_value('2')
end
end
end