infrastructure/machines/nixos/vault01/networking/migrate-vlan-logging.nix

39 lines
939 B
Nix

# SPDX-FileCopyrightText: 2025 Lubin Bailly <lubin.bailly@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2
{
lib,
writeShellApplication,
writeText,
vlans-info,
postgresql,
kea_log-init,
}:
let
inherit (lib) concatMapStringsSep;
sql-script = writeText "vlan-filling.sql" ''
DROP TABLE IF EXISTS vlan_prefixes;
INSERT INTO kea_log (ip_addr, vlan_id, lease_start_sec, lease_end_sec) VALUES
${concatMapStringsSep ",\n " (
{
vlan,
netIP,
prefixLen,
...
}:
"(inet '${netIP}/${toString prefixLen}', ${toString vlan}, 0, MIGRATION_TIMESTAMP)"
) vlans-info}
;
'';
in
writeShellApplication {
name = "fill-vlan_prefixes";
runtimeInputs = [ postgresql ];
text = ''
TIMESTAMP="$(date +%s)"
psql -d ulogd -U ulogd -f ${kea_log-init}
sed "s/MIGRATION_TIMESTAMP/$TIMESTAMP/" ${sql-script} \
| psql -d ulogd -U ulogd
'';
}