From f3a21a4de5a3c40d25796813a91191c3d77d5aa5 Mon Sep 17 00:00:00 2001 From: Steve Traylen Date: Tue, 21 Nov 2023 11:25:19 +0100 Subject: [PATCH] Leave readme-ifcfg-rh.txt untouched On EL9 there is a file `/etc/sysconfig/network-scripts/readme-ifcfg-rh.txt` This file contains useful information and will no longer be purged following this patch. This will also stop a pointless puppet action when the NetworkManager upgrades. --- manifests/init.pp | 7 +++++++ spec/acceptance/nm_spec.rb | 9 +++++++++ spec/classes/init_spec.rb | 7 +++++++ 3 files changed, 23 insertions(+) diff --git a/manifests/init.pp b/manifests/init.pp index 4d63681..3ac57ea 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -27,12 +27,19 @@ Class['nm::install'] -> Class['nm::service'] + $_ignore = $facts['os']['release']['major'] ? { + '7' => undef, + '8' => undef, + default => 'readme-ifcfg-rh.txt', + } + # remove ifcfg-* files to prevent conflicts between ifcfg- and .nmconnection file { '/etc/sysconfig/network-scripts': ensure => 'directory', purge => true, recurse => true, force => true, + ignore => $_ignore, } # remove any conflicting nm drop-in config files diff --git a/spec/acceptance/nm_spec.rb b/spec/acceptance/nm_spec.rb index a607a67..54b65da 100644 --- a/spec/acceptance/nm_spec.rb +++ b/spec/acceptance/nm_spec.rb @@ -12,6 +12,15 @@ it { is_expected.to be_installed } end + describe file('/etc/sysconfig/network-scripts/readme-ifcfg-rh.txt') do + case fact('os.release.major') + when '7', '8' + it { is_expected.not_to be file } + else + it { is_expected.to be_file } + end + end + describe file('/etc/NetworkManager/NetworkManager.conf') do it { is_expected.to be_file } it { is_expected.to be_owned_by 'root' } diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index 9dd529f..a1a78c2 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -21,6 +21,13 @@ ) end + case facts[:os]['release']['major'] + when '7', '8' + it { is_expected.to contain_file('/etc/sysconfig/network-scripts').without_ignore } + else + it { is_expected.to contain_file('/etc/sysconfig/network-scripts').with_ignore('readme-ifcfg-rh.txt') } + end + it do is_expected.to contain_file('/etc/NetworkManager/conf.d').with( ensure: 'directory',