From 7c936988d61c8e31e56e73e975890024f0ece370 Mon Sep 17 00:00:00 2001
From: John Estabrook <jestabro@vyos.io>
Date: Thu, 1 Aug 2024 19:18:36 -0500
Subject: T6629: call check_kmod within a standard config function

Move the remaining calls to check_kmod within a standard function,
with placement determined by the needs of the config script.

(cherry picked from commit 95eef73f1b002c8b9e8e769135ffed50c8ca6890)
---
 src/conf_mode/interfaces_l2tpv3.py    | 3 ++-
 src/conf_mode/interfaces_wireguard.py | 3 ++-
 src/conf_mode/interfaces_wireless.py  | 3 ++-
 src/conf_mode/nat.py                  | 3 ++-
 src/conf_mode/nat66.py                | 3 ++-
 5 files changed, 10 insertions(+), 5 deletions(-)

(limited to 'src/conf_mode')

diff --git a/src/conf_mode/interfaces_l2tpv3.py b/src/conf_mode/interfaces_l2tpv3.py
index b9f827bee..f0a70436e 100755
--- a/src/conf_mode/interfaces_l2tpv3.py
+++ b/src/conf_mode/interfaces_l2tpv3.py
@@ -86,6 +86,8 @@ def generate(l2tpv3):
     return None
 
 def apply(l2tpv3):
+    check_kmod(k_mod)
+
     # Check if L2TPv3 interface already exists
     if interface_exists(l2tpv3['ifname']):
         # L2TPv3 is picky when changing tunnels/sessions, thus we can simply
@@ -102,7 +104,6 @@ def apply(l2tpv3):
 
 if __name__ == '__main__':
     try:
-        check_kmod(k_mod)
         c = get_config()
         verify(c)
         generate(c)
diff --git a/src/conf_mode/interfaces_wireguard.py b/src/conf_mode/interfaces_wireguard.py
index 0e0b77877..482da1c66 100755
--- a/src/conf_mode/interfaces_wireguard.py
+++ b/src/conf_mode/interfaces_wireguard.py
@@ -104,6 +104,8 @@ def verify(wireguard):
         public_keys.append(peer['public_key'])
 
 def apply(wireguard):
+    check_kmod('wireguard')
+
     if 'rebuild_required' in wireguard or 'deleted' in wireguard:
         wg = WireGuardIf(**wireguard)
         # WireGuard only supports peer removal based on the configured public-key,
@@ -123,7 +125,6 @@ def apply(wireguard):
 
 if __name__ == '__main__':
     try:
-        check_kmod('wireguard')
         c = get_config()
         verify(c)
         apply(c)
diff --git a/src/conf_mode/interfaces_wireless.py b/src/conf_mode/interfaces_wireless.py
index ff38c979c..9488f6797 100755
--- a/src/conf_mode/interfaces_wireless.py
+++ b/src/conf_mode/interfaces_wireless.py
@@ -225,6 +225,8 @@ def verify(wifi):
     return None
 
 def generate(wifi):
+    check_kmod('mac80211')
+
     interface = wifi['ifname']
 
     # Delete config files if interface is removed
@@ -319,7 +321,6 @@ def apply(wifi):
 
 if __name__ == '__main__':
     try:
-        check_kmod('mac80211')
         c = get_config()
         verify(c)
         generate(c)
diff --git a/src/conf_mode/nat.py b/src/conf_mode/nat.py
index f74bb217e..39803fa02 100755
--- a/src/conf_mode/nat.py
+++ b/src/conf_mode/nat.py
@@ -240,6 +240,8 @@ def generate(nat):
     return None
 
 def apply(nat):
+    check_kmod(k_mod)
+
     cmd(f'nft --file {nftables_nat_config}')
     cmd(f'nft --file {nftables_static_nat_conf}')
 
@@ -253,7 +255,6 @@ def apply(nat):
 
 if __name__ == '__main__':
     try:
-        check_kmod(k_mod)
         c = get_config()
         verify(c)
         generate(c)
diff --git a/src/conf_mode/nat66.py b/src/conf_mode/nat66.py
index 075738dad..c44320f36 100755
--- a/src/conf_mode/nat66.py
+++ b/src/conf_mode/nat66.py
@@ -112,6 +112,8 @@ def apply(nat):
     if not nat:
         return None
 
+    check_kmod(k_mod)
+
     cmd(f'nft --file {nftables_nat66_config}')
     call_dependents()
 
@@ -119,7 +121,6 @@ def apply(nat):
 
 if __name__ == '__main__':
     try:
-        check_kmod(k_mod)
         c = get_config()
         verify(c)
         generate(c)
-- 
cgit v1.2.3