at master 1.6 kB view raw
1{ pkgs, ... }: 2{ 3 name = "deluge"; 4 meta = with pkgs.lib.maintainers; { 5 maintainers = [ flokli ]; 6 }; 7 8 nodes = { 9 simple = { 10 services.deluge = { 11 enable = true; 12 package = pkgs.deluge-2_x; 13 web = { 14 enable = true; 15 openFirewall = true; 16 }; 17 }; 18 }; 19 20 declarative = { 21 services.deluge = { 22 enable = true; 23 package = pkgs.deluge-2_x; 24 openFirewall = true; 25 declarative = true; 26 config = { 27 allow_remote = true; 28 download_location = "/var/lib/deluge/my-download"; 29 daemon_port = 58846; 30 listen_ports = [ 31 6881 32 6889 33 ]; 34 }; 35 web = { 36 enable = true; 37 port = 3142; 38 }; 39 authFile = pkgs.writeText "deluge-auth" '' 40 localclient:a7bef72a890:10 41 andrew:password:10 42 user3:anotherpass:5 43 ''; 44 }; 45 }; 46 47 }; 48 49 testScript = '' 50 start_all() 51 52 simple.wait_for_unit("deluged") 53 simple.wait_for_unit("delugeweb") 54 simple.wait_for_open_port(8112) 55 declarative.wait_for_unit("network.target") 56 declarative.wait_until_succeeds("curl --fail http://simple:8112") 57 58 declarative.wait_for_unit("deluged") 59 declarative.wait_for_unit("delugeweb") 60 declarative.wait_until_succeeds("curl --fail http://declarative:3142") 61 62 # deluge-console always exits with 1. https://dev.deluge-torrent.org/ticket/3291 63 declarative.succeed( 64 "(deluge-console 'connect 127.0.0.1:58846 andrew password; help' || true) | grep -q 'rm.*Remove a torrent'" 65 ) 66 ''; 67}