puppet-tripleo/spec/defines/tripleo_host_sriov_numvfs_persistence_spec.rb
waleed mousa 10237e999d hw ovs offload - On some machines representor ports not created after reboot
On some machines it's failing to run the devlink and ethtool commands
without the full path of these commands

Closes-Bug: #1745821
Change-Id: If2f7c7a46fb1b52cce9ffbfa31a3161fc07f1334
2018-01-29 11:32:24 +00:00

140 lines
4.4 KiB
Ruby

require 'spec_helper'
describe 'tripleo::host::sriov::numvfs_persistence' do
describe 'confugure numvfs for persistence' do
let :title do
'numvfs'
end
let :params do
{
:name => 'persistence',
:vf_defs => ['eth0:10','eth1:8'],
:content_string => "Hashbang\n",
:udev_rules => ""
}
end
it 'configures persistence' do
is_expected.to contain_file('/etc/sysconfig/allocate_vfs').with(
:ensure => 'file',
:content => "Hashbang\n[ \"eth0\" == \"\$1\" ] && echo 10 > /sys/class/net/eth0/device/sriov_numvfs\n[ \"eth1\" == \"\$1\" ] && echo 8 > /sys/class/net/eth1/device/sriov_numvfs\n",
:group => 'root',
:mode => '0755',
:owner => 'root',
)
is_expected.to contain_file('/sbin/ifup-local').with(
:group => 'root',
:mode => '0755',
:owner => 'root',
:content => '#!/bin/bash',
:replace => false,
)
is_expected.to contain_file('/etc/udev/rules.d/70-tripleo-reset-sriov.rules').with(
:ensure => 'file',
:content => "KERNEL==\"eth0\", RUN+=\"/etc/sysconfig/allocate_vfs %k\"\nKERNEL==\"eth1\", RUN+=\"/etc/sysconfig/allocate_vfs %k\"\n",
:group => 'root',
:mode => '0755',
:owner => 'root',
:replace => true
)
is_expected.to contain_file_line('call_ifup-local').with(
:path => '/sbin/ifup-local',
:line => '/etc/sysconfig/allocate_vfs $1',
)
end
end
end
describe 'tripleo::host::sriov::numvfs_persistence' do
describe 'confugure numvfs for persistence' do
let :title do
'numvfs'
end
let :params do
{
:name => 'persistence',
:vf_defs => ['eth0:10:switchdev','eth1:8:legacy'],
:content_string => "Hashbang\n",
:udev_rules => ""
}
end
it 'configures persistence' do
is_expected.to contain_file('/etc/sysconfig/allocate_vfs').with(
:ensure => 'file',
:content => "Hashbang\nset -eux
set -o pipefail
if [ \"eth0\" == \"$1\" ]
then
exec 1> >(logger -s -t $(basename $0)) 2>&1
if [ \"$(cat /sys/class/net/eth0/device/sriov_numvfs)\" == \"0\" ]
then
echo 10 > /sys/class/net/eth0/device/sriov_numvfs
else
exit 0
fi
if [ \"$(cat /sys/class/net/eth0/device/vendor)\" == \"0x15b3\" ]
then
vfs_pci_list=$(grep PCI_SLOT_NAME /sys/class/net/eth0/device/virtfn*/uevent | cut -d'=' -f2)
for pci in $vfs_pci_list
do
echo \"$pci\" > /sys/bus/pci/drivers/mlx5_core/unbind
done
fi
interface_pci=$(grep PCI_SLOT_NAME /sys/class/net/eth0/device/uevent | cut -d'=' -f2)
/usr/sbin/devlink dev eswitch set pci/\"$interface_pci\" mode switchdev
if [[ \"$(/usr/sbin/devlink dev eswitch show pci/\"$interface_pci\")\" =~ \"mode switchdev\" ]]
then
echo \"PCI device $interface_pci set to mode switchdev.\"
else
echo \"Failed to set PCI device $interface_pci to mode switchdev.\"
exit 1
fi
interface_device=$(cat /sys/class/net/eth0/device/device)
if [ \"$interface_device\" == \"0x1013\" ] || [ \"$interface_device\" == \"0x1015\" ]
then
/usr/sbin/devlink dev eswitch set pci/\"$interface_pci\" inline-mode transport
fi
/usr/sbin/ethtool -K eth0 hw-tc-offload on
if [ \"$(cat /sys/class/net/eth0/device/vendor)\" == \"0x15b3\" ]
then
for pci in $vfs_pci_list
do
echo \"$pci\" > /sys/bus/pci/drivers/mlx5_core/bind
done
fi
fi\n[ \"eth1\" == \"\$1\" ] && echo 8 > /sys/class/net/eth1/device/sriov_numvfs\n",
:group => 'root',
:mode => '0755',
:owner => 'root',
)
is_expected.to contain_file('/sbin/ifup-local').with(
:group => 'root',
:mode => '0755',
:owner => 'root',
:content => '#!/bin/bash',
:replace => false,
)
is_expected.to contain_file('/etc/udev/rules.d/70-tripleo-reset-sriov.rules').with(
:ensure => 'file',
:content => "KERNEL==\"eth0\", RUN+=\"/etc/sysconfig/allocate_vfs %k\"\nKERNEL==\"eth1\", RUN+=\"/etc/sysconfig/allocate_vfs %k\"\n",
:group => 'root',
:mode => '0755',
:owner => 'root',
:replace => true
)
is_expected.to contain_file_line('call_ifup-local').with(
:path => '/sbin/ifup-local',
:line => '/etc/sysconfig/allocate_vfs $1',
)
end
end
end