import ./make-test-python.nix ( { pkgs, ... }: let rpcSecret = "supersecret"; rpc-listen-port = 6800; curlBody = { jsonrpc = 2.0; id = 1; method = "aria2.getVersion"; params = [ "token:${rpcSecret}" ]; }; in rec { name = "aria2"; nodes.machine = { environment.etc."aria2Rpc".text = rpcSecret; services.aria2 = { enable = true; rpcSecretFile = "/etc/aria2Rpc"; settings = { inherit rpc-listen-port; allow-overwrite = false; check-integrity = true; console-log-level = "warn"; listen-port = [ { from = 20000; to = 20010; } { from = 22222; to = 22222; } ]; max-concurrent-downloads = 50; seed-ratio = 1.2; summary-interval = 0; }; }; }; testScript = '' machine.start() machine.wait_for_unit("aria2.service") curl_cmd = 'curl --fail-with-body -X POST -H "Content-Type: application/json" \ -d \'${builtins.toJSON curlBody}\' http://localhost:${toString rpc-listen-port}/jsonrpc' print(machine.wait_until_succeeds(curl_cmd, timeout=10)) machine.shutdown() ''; meta.maintainers = [ pkgs.lib.maintainers.timhae ]; } )