From da354b88d916f4e7ba1e888a0e3501a5307ec3b5 Mon Sep 17 00:00:00 2001 From: l0crian1 Date: Mon, 3 Aug 2026 13:58:16 -0400 Subject: T9152: Updated nft -c check to return actual error message --- python/vyos/ifconfig/interface.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'python') diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py index b58eccd43..b567f4ca9 100644 --- a/python/vyos/ifconfig/interface.py +++ b/python/vyos/ifconfig/interface.py @@ -920,12 +920,23 @@ class Interface(Control): rpf_dict['loose_handle'] = handle def _apply_rpf_nft_config(self, rpf_dict): + from subprocess import STDOUT + rpf_template = '/run/nftables-source-validation.conf' render(rpf_template, 'firewall/nftables-source-validation.j2', rpf_dict) - tmp = run(['nft', '-c', '-f', rpf_template]) - if tmp > 0: - raise ConfigError('Source validation configuration file errors encountered!') - run(['nft', '-f', rpf_template]) + + cmdl( + ['nft', '-c', '--file', rpf_template], + stderr=STDOUT, + raising=ConfigError, + message='Source validation nftables check failed', + ) + cmdl( + ['nft', '-f', rpf_template], + stderr=STDOUT, + raising=ConfigError, + message='Failed to apply source validation nftables config', + ) def set_ipv4_source_validation(self, mode): """ -- cgit v1.2.3