diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-01-17 00:07:15 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-01-17 00:07:15 +0000 |
commit | 430e1b89ba95bcc7cdff2964025da2205f05606d (patch) | |
tree | 3817f6a008661b006394e5fe8a4a387e1b17508c /manifests/host/sriov/numvfs_persistence.pp | |
parent | 3f700ce7c0b939db28f0149008f4090896d48e7c (diff) | |
parent | 9a79bdab86224e678414fd98ba2e888836083e79 (diff) |
Merge "Call VF configuration from udev rules"
Diffstat (limited to 'manifests/host/sriov/numvfs_persistence.pp')
-rw-r--r-- | manifests/host/sriov/numvfs_persistence.pp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/manifests/host/sriov/numvfs_persistence.pp b/manifests/host/sriov/numvfs_persistence.pp index 1ee402c..ec8c875 100644 --- a/manifests/host/sriov/numvfs_persistence.pp +++ b/manifests/host/sriov/numvfs_persistence.pp @@ -10,9 +10,16 @@ # [*content_string*] # (required) String which shall be written to the script file. # +# [*udev_rules*] +# (required) String of lines to write to udev rules to ensure +# VFs are reconfigured if the PCI devices are removed and +# readded without rebooting (e.g. when physical functions were +# allocated to VMs) +# define tripleo::host::sriov::numvfs_persistence( $vf_defs, - $content_string + $content_string, + $udev_rules ){ # Since reduce isn't available, we use recursion to iterate each entries of # "physical_interface:vfs" and accumulate the content that needs to be @@ -36,6 +43,16 @@ define tripleo::host::sriov::numvfs_persistence( replace => false } + file { '/etc/udev/rules.d/70-tripleo-reset-sriov.rules': + ensure => file, + group => 'root', + mode => '0755', + owner => 'root', + content => $udev_rules, + replace => true, + } + + file_line { 'call_ifup-local': path => '/sbin/ifup-local', line => '/etc/sysconfig/allocate_vfs $1', @@ -46,9 +63,11 @@ define tripleo::host::sriov::numvfs_persistence( $interface = $vfspec[0] $count = $vfspec[1] $vfdef_str = "${content_string}[ \"${interface}\" == \"\$1\" ] && echo ${count} > /sys/class/net/${interface}/device/sriov_numvfs\n" + $udev_str = "${udev_rules}KERNEL==\"${interface}\", RUN+=\"/etc/sysconfig/allocate_vfs %k\"\n" tripleo::host::sriov::numvfs_persistence{"mapped ${interface}": vf_defs => delete_at($vf_defs, 0), - content_string => $vfdef_str + content_string => $vfdef_str, + udev_rules => $udev_str } } } |