1cd6444358
1) Include openstacklib defaults manifest. This provides a mechanism for setting default across all modules. 2) Update unit tests for cisco n1kv vem backend. 3) Configure OVS agent to run old interface, and not Ryu (SElinux alert). 4) Disable sriov backend, we already deploy classic ML2 OVS agent. 5) Specify of_interface and ovsdb_interface in acceptance. Change-Id: I63e47ab1ae1d44fd570e4f14c722111fc14328ce Related-Bug: 1599113
246 lines
6.9 KiB
Ruby
246 lines
6.9 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'neutron::agents::n1kv_vem' do
|
|
|
|
let :facts do
|
|
OSDefaults.get_facts({
|
|
:operatingsystem => 'RedHat',
|
|
:operatingsystemrelease => '7',
|
|
:osfamily => 'RedHat',
|
|
})
|
|
end
|
|
|
|
it 'should have a n1kv-vem config file' do
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf').with(
|
|
:ensure => 'present',
|
|
:owner => 'root',
|
|
:group => 'root',
|
|
:mode => '0664'
|
|
)
|
|
end
|
|
|
|
it 'install n1kv-vem' do
|
|
is_expected.to contain_service('openvswitch').with_notify(['Package[nexus1000v]'])
|
|
is_expected.to contain_package('nexus1000v').with_notify(['Service[nexus1000v]'])
|
|
is_expected.to 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
|
|
is_expected.to contain_package('nexus1000v').with_source('/var/n1kv/vem.rpm')
|
|
is_expected.to contain_file('/var/n1kv/vem.rpm').that_requires('File[/var/n1kv]')
|
|
is_expected.to 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
|
|
is_expected.to contain_package('nexus1000v').without_source
|
|
is_expected.to contain_yumrepo('cisco-vem-repo').with(
|
|
:baseurl => 'http://www.cisco.com/repo',
|
|
:enabled => 1
|
|
)
|
|
end
|
|
end
|
|
|
|
it 'execute reread config upon config change' do
|
|
is_expected.to 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_ipv6 => '::3',
|
|
:n1kv_vsm_domain_id => 900,
|
|
:host_mgmt_intf => 'eth9',
|
|
:portdb => 'ovs',
|
|
:fastpath_flood => 'enable'
|
|
}
|
|
end
|
|
it do
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^l3control-ipaddr 9.0.0.1/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^l3control-ipv6addr ::3/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^switch-domain 900/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^host-mgmt-intf eth9/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^portdb ovs/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.without_content(/^phys/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.without_content(/^virt/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^node-type compute/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^fastpath-flood enable/)
|
|
end
|
|
end
|
|
|
|
context 'verify n1kv.conf svs-mode with default IPv6 address' do
|
|
let :params do
|
|
{
|
|
:n1kv_vsm_ipv6 => '::1'
|
|
}
|
|
end
|
|
it do
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.without_content(/^svs-mode V6/)
|
|
end
|
|
end
|
|
|
|
context 'verify n1kv.conf svs-mode with non-default IPv6 address' do
|
|
let :params do
|
|
{
|
|
:n1kv_vsm_ipv6 => '::3'
|
|
}
|
|
end
|
|
it do
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^svs-mode V6/)
|
|
end
|
|
end
|
|
|
|
context 'verify node_type' do
|
|
let :params do
|
|
{
|
|
:node_type => 'network',
|
|
}
|
|
end
|
|
it do
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^node-type network/)
|
|
is_expected.to 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
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^portdb vem/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.without_content(/^portdb ovs/)
|
|
end
|
|
end
|
|
|
|
context 'verify fastpath_flood' do
|
|
let :params do
|
|
{
|
|
:fastpath_flood => 'disable',
|
|
}
|
|
end
|
|
it do
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^fastpath-flood disable/)
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.without_content(/^fastpath-flood enable/)
|
|
end
|
|
end
|
|
|
|
context 'verify n1kv.conf with uplinks' do
|
|
let :params do
|
|
{
|
|
:uplink_profile => { 'eth1' => 'prof1',
|
|
'eth2' => 'prof2'
|
|
}
|
|
}
|
|
end
|
|
it do
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^phys eth1 profile prof1/)
|
|
is_expected.to 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
|
|
is_expected.to contain_file('/etc/n1kv/n1kv.conf') \
|
|
.with_content(/^virt vtep1 profile profint mode dhcp/)
|
|
is_expected.to 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
|
|
is_expected.to 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
|
|
is_expected.to 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
|
|
is_expected.to contain_sysctl__value('net.ipv4.conf.default.rp_filter').with_value('2')
|
|
is_expected.to contain_sysctl__value('net.ipv4.conf.all.rp_filter').with_value('2')
|
|
is_expected.to contain_sysctl__value('net.ipv4.conf.default.arp_ignore').with_value('1')
|
|
is_expected.to contain_sysctl__value('net.ipv4.conf.all.arp_ignore').with_value('1')
|
|
is_expected.to contain_sysctl__value('net.ipv4.conf.all.arp_announce').with_value('2')
|
|
is_expected.to contain_sysctl__value('net.ipv4.conf.default.arp_announce').with_value('2')
|
|
end
|
|
end
|
|
|
|
end
|