Fixes a problem where SR-IOV VF count configuration will fail if a
physical function is in use by a guest when 'puppet apply' is executed.
This change substitutes warnings for failures and skips complaints if a
PCI device is unavailable.
Note: this patch has the side-effect of allowing the same configuration
data on hosts that may *not* or *ever* have PCI SR-IOV devices on the
hardware. Time will tell how evil this is in practice.
Closes-Bug: #
1701284
Change-Id: I71edc135432ab2193741c37ce977dd11172401e6
if File.file?(sriov_numvfs_path)
_set_numvfs
else
- fail("#{sriov_numvfs_path} doesn't exist. Check if #{sriov_get_interface} is a valid network interface supporting SR-IOV")
+ warning("#{sriov_numvfs_path} doesn't exist. Check if #{sriov_get_interface} is a valid network interface supporting SR-IOV")
end
end
) {
if !empty($number_of_vfs) {
- sriov_vf_config { $number_of_vfs: ensure => present }
+ sriov_vf_config { $number_of_vfs: }
# the numvfs configuration needs to be persisted for every boot
tripleo::host::sriov::numvfs_persistence {'persistent_numvfs':
--- /dev/null
+---
+fixes:
+ - |
+ Allow VF configuration files to be written for non-existent PCI devices to
+ allow updates while physical functions are currently in use by a guest.
end
it 'configures numvfs' do
- is_expected.to contain_sriov_vf_config('eth0:4').with( :ensure => 'present' )
- is_expected.to contain_sriov_vf_config('eth1:5').with( :ensure => 'present')
+ is_expected.to contain_sriov_vf_config('eth0:4')
+ is_expected.to contain_sriov_vf_config('eth1:5')
is_expected.to contain_tripleo__host__sriov__numvfs_persistence('persistent_numvfs').with(
:vf_defs => ['eth0:4','eth1:5'],
:content_string => "#!/bin/bash\n"