nixos/tests/kea: test ctrl-agent via kea-exporter

+31
+26
nixos/tests/kea.nix
··· 44 44 name = "/var/lib/kea/dhcp4.leases"; 45 45 }; 46 46 47 + control-socket = { 48 + socket-type = "unix"; 49 + socket-name = "/run/kea/dhcp4.sock"; 50 + }; 51 + 47 52 interfaces-config = { 48 53 dhcp-socket-type = "raw"; 49 54 interfaces = [ ··· 88 93 } ]; 89 94 }; 90 95 }; 96 + }; 97 + 98 + services.kea.ctrl-agent = { 99 + enable = true; 100 + settings = { 101 + http-host = "127.0.0.1"; 102 + http-port = 8000; 103 + control-sockets.dhcp4 = { 104 + socket-type = "unix"; 105 + socket-name = "/run/kea/dhcp4.sock"; 106 + }; 107 + }; 108 + }; 109 + 110 + services.prometheus.exporters.kea = { 111 + enable = true; 112 + controlSocketPaths = [ 113 + "http://127.0.0.1:8000" 114 + ]; 91 115 }; 92 116 }; 93 117 ··· 182 206 client.wait_until_succeeds("ping -c 5 10.0.0.1") 183 207 router.wait_until_succeeds("ping -c 5 10.0.0.3") 184 208 nameserver.wait_until_succeeds("kdig +short client.lan.nixos.test @10.0.0.2 | grep -q 10.0.0.3") 209 + router.log(router.execute("curl 127.0.0.1:9547")[1]) 210 + router.succeed("curl --no-buffer 127.0.0.1:9547 | grep -qE '^kea_dhcp4_addresses_assigned_total.*1.0$'") 185 211 ''; 186 212 })
+5
pkgs/servers/monitoring/prometheus/kea-exporter.nix
··· 1 1 { lib 2 2 , python3Packages 3 3 , fetchPypi 4 + , nixosTests 4 5 }: 5 6 6 7 python3Packages.buildPythonApplication rec { ··· 28 29 $out/bin/kea-exporter --help > /dev/null 29 30 $out/bin/kea-exporter --version | grep -q ${version} 30 31 ''; 32 + 33 + passthru.tests = { 34 + inherit (nixosTests) kea; 35 + }; 31 36 32 37 meta = with lib; { 33 38 changelog = "https://github.com/mweinelt/kea-exporter/blob/v${version}/HISTORY";