Template NM WAN pieces: netplan split, cellular keyfile, new host variables
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KqhjP7nud5gdBg25zCiRk9
This commit is contained in:
@@ -37,7 +37,8 @@ fi
|
||||
# (plain `install` would ship the placeholder unrendered — the 2026-09-23 failure)
|
||||
# vanrouter.js: installed by the loop in the cockpit block; 50-van-wan.yaml: reference copy,
|
||||
# rendered by hand via `deploy.sh render` (deploy.sh only warns when it differs)
|
||||
exempt=" cockpit/vanrouter/vanrouter.js ap/50-van-wan.yaml "
|
||||
# 50-van-wan-wifi.yaml, cellular.nmconnection: installed by dedicated code, not `install_rendered <src> /abs/dst` literal lines
|
||||
exempt=" cockpit/vanrouter/vanrouter.js ap/50-van-wan.yaml ap/50-van-wan-wifi.yaml ap/cellular.nmconnection "
|
||||
for f in $(./deploy.sh --templates); do
|
||||
case "$exempt" in *" $f "*) continue ;; esac
|
||||
if grep -qE "^[[:space:]]*install_rendered +$f[[:space:]]" deploy.sh; then
|
||||
@@ -62,9 +63,11 @@ expect van ap/nftables.conf 'ip saddr 10.42.1.0/24'
|
||||
expect wan ap/nftables.conf 'ip saddr 10.42.0.0/24'
|
||||
expect van ap/van-br0-setup.service 'brctl addif br0 enP1p17s0'
|
||||
expect wan ap/van-br0-setup.service 'brctl addif br0 enx00e04c331140'
|
||||
expect van failover/config.json '"device": "wlan0"'
|
||||
expect van router-status/config.json '"wifi_wan_iface": "wlan0"'
|
||||
expect van failover/van-wlan-watchdog.service 'van-wlan-watchdog wlan0'
|
||||
expect van failover/config.json '"device": ""'
|
||||
expect wan failover/config.json '"device": "wlan0"'
|
||||
expect van router-status/config.json '"wifi_wan_iface": ""'
|
||||
expect van failover/van-wlan-watchdog.service 'ExecStart=/usr/local/sbin/van-wlan-watchdog'
|
||||
expect wan failover/van-wlan-watchdog.service 'van-wlan-watchdog wlan0'
|
||||
expect van ap/van-ap-unmanaged.conf 'interface-name:enP1p17s0'
|
||||
expect wan ap/van-ap-unmanaged.conf 'interface-name:enx00e04c331140;interface-name:eth0'
|
||||
expect wan ap/23-van-lan-eth0.network 'Name=eth0'
|
||||
@@ -202,4 +205,27 @@ for row in "beaconing:$r_ok" "silent:$r_bad" "silent:"; do
|
||||
if [ "$got" = "$want" ]; then ok "--classify-radio -> $want"; else bad "--classify-radio gave '$got', want '$want'"; fi
|
||||
done
|
||||
|
||||
# 14. the netplan split leaves the Pi 5's rendered WAN netplan byte-identical, and the R5C (no Wi-Fi WAN) omits wifis
|
||||
old=$(mktemp)
|
||||
git show 223652b:ap/50-van-wan.yaml > "$old"
|
||||
want=$(VANLINK_CONF=hosts/wan.conf ./deploy.sh render "$old")
|
||||
tmpw=$(mktemp)
|
||||
# render_wan_netplan is internal; expose it through --render-wan-netplan (documented in the header)
|
||||
VANLINK_CONF=hosts/wan.conf ./deploy.sh --render-wan-netplan > "$tmpw"
|
||||
if [ "$want" = "$(cat "$tmpw")" ]; then ok "wan.conf: split netplan renders identical to the old single template"; else bad "wan.conf: netplan render changed by the split"; diff <(echo "$want") "$tmpw" | head -10 | sed 's/^/ /'; fi
|
||||
if VANLINK_CONF=hosts/van.conf ./deploy.sh --render-wan-netplan | grep -q '^ wifis:'; then bad "van.conf: wifis stanza must be omitted (WIFI_WAN_IFACE empty)"; else ok "van.conf: no wifis stanza"; fi
|
||||
rm -f "$tmpw" "$old"
|
||||
|
||||
# 15. cellular connection name comes from the host config
|
||||
expect van failover/config.json '"connection": "Koodo"'
|
||||
expect wan failover/config.json '"connection": "Koodo"'
|
||||
|
||||
# 16. cellular keyfile template renders a valid NM gsm profile with a stable uuid
|
||||
for h in van wan; do
|
||||
k=$(VANLINK_CONF=hosts/$h.conf ./deploy.sh render ap/cellular.nmconnection)
|
||||
for pat in '^id=Koodo$' '^type=gsm$' '^apn=sp.koodo.com$' '^route-metric=300$' '^never-default=true$' '^uuid=[0-9a-f-]{36}$'; do
|
||||
if echo "$k" | grep -qE "$pat"; then ok "$h: cellular keyfile has $pat"; else bad "$h: cellular keyfile lacks $pat"; fi
|
||||
done
|
||||
done
|
||||
|
||||
exit "$fail"
|
||||
|
||||
Reference in New Issue
Block a user