1{ lib, pkgs, ... }:
2{
3 name = "peering-manager";
4
5 meta = with lib.maintainers; {
6 maintainers = [ yuka ];
7 };
8
9 nodes.machine =
10 { ... }:
11 {
12 services.peering-manager = {
13 enable = true;
14 secretKeyFile = pkgs.writeText "secret" ''
15 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
16 '';
17 };
18 };
19
20 testScript =
21 { nodes }:
22 ''
23 machine.start()
24 machine.wait_for_unit("peering-manager.target")
25 machine.wait_until_succeeds("journalctl --since -1m --unit peering-manager --grep Listening")
26
27 print(machine.succeed(
28 "curl -sSfL http://[::1]:8001"
29 ))
30 with subtest("Home screen loads"):
31 machine.succeed(
32 "curl -sSfL http://[::1]:8001 | grep '<title>Home - Peering Manager</title>'"
33 )
34 with subtest("checks succeed"):
35 machine.succeed(
36 "systemctl stop peering-manager peering-manager-rq"
37 )
38 machine.succeed(
39 "sudo -u postgres psql -c 'ALTER USER \"peering-manager\" WITH SUPERUSER;'"
40 )
41 machine.succeed(
42 "cd ${nodes.machine.system.build.peeringManagerPkg}/opt/peering-manager ; peering-manager-manage test --no-input"
43 )
44 '';
45}