pkgs/ap: don't use uci batch

was hiding which command produced an error
This commit is contained in:
Astro 2021-11-09 21:10:56 +01:00
parent b8b4995433
commit 311df51820
1 changed files with 49 additions and 51 deletions

View File

@ -163,22 +163,21 @@ in ''
${uciDeleteAll "network.@switch_vlan"}
${uciDeleteAll "wireless.@wifi"}
uci batch <<__UCI__
set system.@system[0].hostname=${hostName}
set dhcp.@dnsmasq[0].enabled=0
set system.@system[0].log_ip=${config.site.net.mgmt.hosts4.logging}
set system.@system[0].log_proto=udp
uci set system.@system[0].hostname=${hostName}
uci set dhcp.@dnsmasq[0].enabled=0
uci set system.@system[0].log_ip=${config.site.net.mgmt.hosts4.logging}
uci set system.@system[0].log_proto=udp
# Switch config
${optionalString hasSwitch ''
# Ports ${portsDoc}
${concatMapStrings (net: ''
add network switch_vlan
set network.@switch_vlan[-1]=switch_vlan
set network.@switch_vlan[-1].device='switch0'
set network.@switch_vlan[-1].vlan='${toString config.site.net.${net}.vlan}'
set network.@switch_vlan[-1].ports='${switchPortsConfig net}'
set network.@switch_vlan[-1].comment='${net}'
uci add network switch_vlan
uci set network.@switch_vlan[-1]=switch_vlan
uci set network.@switch_vlan[-1].device='switch0'
uci set network.@switch_vlan[-1].vlan='${toString config.site.net.${net}.vlan}'
uci set network.@switch_vlan[-1].ports='${switchPortsConfig net}'
uci set network.@switch_vlan[-1].comment='${net}'
'') (
sort (net1: net2:
@ -193,25 +192,25 @@ in ''
''}
# mgmt network
set network.mgmt=interface
set network.mgmt.ifname=${if builtins.length (networkInterfaces "mgmt") == 1 then builtins.head (networkInterfaces "mgmt") else throw "No interface for mgmt"}
set network.mgmt.proto=static
set network.mgmt.ipaddr=${config.site.net.mgmt.hosts4.${hostName}}
set network.mgmt.netmask=${self.lib.netmasks.${elemAt (
uci set network.mgmt=interface
uci set network.mgmt.ifname=${if builtins.length (networkInterfaces "mgmt") == 1 then builtins.head (networkInterfaces "mgmt") else throw "No interface for mgmt"}
uci set network.mgmt.proto=static
uci set network.mgmt.ipaddr=${config.site.net.mgmt.hosts4.${hostName}}
uci set network.mgmt.netmask=${self.lib.netmasks.${elemAt (
builtins.split "/" config.site.net.mgmt.subnet4
) 2}}
set network.mgmt.gateway=${config.site.net.mgmt.hosts4.mgmt-gw}
set network.mgmt.ip6addr=${config.site.net.mgmt.hosts6.dn42.${hostName}}/64
set network.mgmt.ip6gw=${config.site.net.mgmt.hosts6.dn42.mgmt-gw}
delete network.mgmt.dns
add_list network.mgmt.dns=${config.site.net.serv.hosts4.dnscache}
add_list network.mgmt.dns=${config.site.net.serv.hosts6.dn42.dnscache}
uci set network.mgmt.gateway=${config.site.net.mgmt.hosts4.mgmt-gw}
uci set network.mgmt.ip6addr=${config.site.net.mgmt.hosts6.dn42.${hostName}}/64
uci set network.mgmt.ip6gw=${config.site.net.mgmt.hosts6.dn42.mgmt-gw}
uci delete network.mgmt.dns
uci add_list network.mgmt.dns=${config.site.net.serv.hosts4.dnscache}
uci add_list network.mgmt.dns=${config.site.net.serv.hosts6.dn42.dnscache}
delete network.globals.ula_prefix
uci delete network.globals.ula_prefix
# delete unused networks
${concatMapStrings (net:
lib.optionalString (! hostConfig.interfaces ? ${net}) ''
delete network.${net}
uci delete network.${net}
''
) ([ "lan" "wan" "wan6" ] ++ builtins.attrNames config.site.net)}
@ -220,16 +219,16 @@ in ''
let
iface = hostConfig.interfaces.${net};
in optionalString (net != "mgmt" && iface.type == "bridge") ''
set network.${net}=interface
set network.${net}.type=bridge
set network.${net}.proto=static
set network.${net}.ifname='${concatStringsSep " " (networkInterfaces net)}'
uci set network.${net}=interface
uci set network.${net}.type=bridge
uci set network.${net}.proto=static
uci set network.${net}.ifname='${concatStringsSep " " (networkInterfaces net)}'
'') (builtins.attrNames hostConfig.interfaces)
}
delete wireless.default_radio0
delete wireless.default_radio1
uci delete wireless.default_radio0
uci delete wireless.default_radio1
${concatStrings (imap0 (index: path:
let
radioConfig = hostConfig.wifi.${path};
@ -237,42 +236,41 @@ in ''
then "wlan2"
else "wlan5";
in ''
set wireless.radio${toString index}=wifi-device
set wireless.radio${toString index}.type=mac80211
set wireless.radio${toString index}.country=DE
set wireless.radio${toString index}.channel=${toString radioConfig.channel}
set wireless.radio${toString index}.path=${path}
set wireless.radio${toString index}.htmode=${radioConfig.htmode}
set wireless.radio${toString index}.noscan=1
delete wireless.radio${toString index}.disabled
uci set wireless.radio${toString index}=wifi-device
uci set wireless.radio${toString index}.type=mac80211
uci set wireless.radio${toString index}.country=DE
uci set wireless.radio${toString index}.channel=${toString radioConfig.channel}
uci set wireless.radio${toString index}.path=${path}
uci set wireless.radio${toString index}.htmode=${radioConfig.htmode}
uci set wireless.radio${toString index}.noscan=1
uci delete wireless.radio${toString index}.disabled
${concatMapStrings (ssid:
let
ssidConfig = radioConfig.ssids.${ssid};
in ''
add wireless wifi
set wireless.@wifi-iface[-1].ifname=${ifPrefix}-${ssidConfig.net}
set wireless.@wifi-iface[-1].device=radio${toString index}
set wireless.@wifi-iface[-1].ssid='${ssid}'
set wireless.@wifi-iface[-1].mode=ap
set wireless.@wifi-iface[-1].network=${ssidConfig.net}
set wireless.@wifi-iface[-1].mcast_rate=18000
uci add wireless wifi
uci set wireless.@wifi-iface[-1].ifname=${ifPrefix}-${ssidConfig.net}
uci set wireless.@wifi-iface[-1].device=radio${toString index}
uci set wireless.@wifi-iface[-1].ssid='${ssid}'
uci set wireless.@wifi-iface[-1].mode=ap
uci set wireless.@wifi-iface[-1].network=${ssidConfig.net}
uci set wireless.@wifi-iface[-1].mcast_rate=18000
${if (ssidConfig.psk != null)
then ''
set wireless.@wifi-iface[-1].encryption=psk2
set wireless.@wifi-iface[-1].key='${ssidConfig.psk}'
uci set wireless.@wifi-iface[-1].encryption=psk2
uci set wireless.@wifi-iface[-1].key='${ssidConfig.psk}'
''
else ''
set wireless.@wifi-iface[-1].encryption=none
delete wireless.@wifi-iface[-1].key
uci set wireless.@wifi-iface[-1].encryption=none
uci delete wireless.@wifi-iface[-1].key
''}
''
) (builtins.attrNames radioConfig.ssids)}
'') (builtins.attrNames hostConfig.wifi))}
commit
__UCI__
uci commit
# Cronjob that makes sure WiFi is only visible when server with all
# the gateways is reachable