diff options
author | Azat Bahawi <azat@bahawi.net> | 2022-09-23 23:39:38 +0300 |
---|---|---|
committer | Azat Bahawi <azat@bahawi.net> | 2022-09-23 23:55:54 +0300 |
commit | 99dc9b9c164af3bc6c08ff4a4db4c2b58e368160 (patch) | |
tree | fd6f9c5983a9680b78257fba774a99ab9d79d9e3 /nixos/tests/endlessh-go.nix | |
parent | 3576b67eb1b86c113910c3838ddab9ecaf8c20da (diff) |
nixos/endlessh-go: init module
Diffstat (limited to 'nixos/tests/endlessh-go.nix')
-rw-r--r-- | nixos/tests/endlessh-go.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/nixos/tests/endlessh-go.nix b/nixos/tests/endlessh-go.nix new file mode 100644 index 0000000000000..b261dbf1c5605 --- /dev/null +++ b/nixos/tests/endlessh-go.nix @@ -0,0 +1,58 @@ +import ./make-test-python.nix ({ lib, pkgs, ... }: +{ + name = "endlessh-go"; + meta.maintainers = with lib.maintainers; [ azahi ]; + + nodes = { + server = { ... }: { + services.endlessh-go = { + enable = true; + prometheus.enable = true; + openFirewall = true; + }; + + specialisation = { + unprivileged.configuration = { + services.endlessh-go = { + port = 2222; + prometheus.port = 9229; + }; + }; + + privileged.configuration = { + services.endlessh-go = { + port = 22; + prometheus.port = 92; + }; + }; + }; + }; + + client = { pkgs, ... }: { + environment.systemPackages = with pkgs; [ curl netcat ]; + }; + }; + + testScript = '' + def activate_specialisation(name: str): + server.succeed(f"/run/booted-system/specialisation/{name}/bin/switch-to-configuration test >&2") + + start_all() + + with subtest("Unprivileged"): + activate_specialisation("unprivileged") + server.wait_for_unit("endlessh-go.service") + server.wait_for_open_port(2222) + server.wait_for_open_port(9229) + client.succeed("nc -dvW5 server 2222") + client.succeed("curl -kv server:9229/metrics") + + with subtest("Privileged"): + activate_specialisation("privileged") + server.wait_for_unit("endlessh-go.service") + server.wait_for_open_port(22) + server.wait_for_open_port(92) + client.succeed("nc -dvW5 server 22") + client.succeed("curl -kv server:92/metrics") + ''; +}) |