at 23.11-beta 1.6 kB view raw
1import ./make-test-python.nix ({ lib, pkgs, ... }: 2{ 3 name = "endlessh-go"; 4 meta.maintainers = with lib.maintainers; [ azahi ]; 5 6 nodes = { 7 server = { ... }: { 8 services.endlessh-go = { 9 enable = true; 10 prometheus.enable = true; 11 openFirewall = true; 12 }; 13 14 specialisation = { 15 unprivileged.configuration = { 16 services.endlessh-go = { 17 port = 2222; 18 prometheus.port = 9229; 19 }; 20 }; 21 22 privileged.configuration = { 23 services.endlessh-go = { 24 port = 22; 25 prometheus.port = 92; 26 }; 27 }; 28 }; 29 }; 30 31 client = { pkgs, ... }: { 32 environment.systemPackages = with pkgs; [ curl netcat ]; 33 }; 34 }; 35 36 testScript = '' 37 def activate_specialisation(name: str): 38 server.succeed(f"/run/booted-system/specialisation/{name}/bin/switch-to-configuration test >&2") 39 40 start_all() 41 42 with subtest("Unprivileged"): 43 activate_specialisation("unprivileged") 44 server.wait_for_unit("endlessh-go.service") 45 server.wait_for_open_port(2222) 46 server.wait_for_open_port(9229) 47 client.succeed("nc -dvW5 server 2222") 48 client.succeed("curl -kv server:9229/metrics") 49 50 with subtest("Privileged"): 51 activate_specialisation("privileged") 52 server.wait_for_unit("endlessh-go.service") 53 server.wait_for_open_port(22) 54 server.wait_for_open_port(92) 55 client.succeed("nc -dvW5 server 22") 56 client.succeed("curl -kv server:92/metrics") 57 ''; 58})