bcb2f287e1
GitOrigin-RevId: d603719ec6e294f034936c0d0dc06f689d91b6c3
43 lines
1.2 KiB
Nix
43 lines
1.2 KiB
Nix
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 ];
|
|
})
|