1{ pkgs, ... }:
2{
3 name = "rsyncd";
4
5 nodes =
6 let
7 mkNode =
8 socketActivated:
9 { config, ... }:
10 {
11 networking.firewall.allowedTCPPorts = [ config.services.rsyncd.port ];
12 services.rsyncd = {
13 enable = true;
14 inherit socketActivated;
15 settings = {
16 globalSection = {
17 "reverse lookup" = false;
18 "forward lookup" = false;
19 };
20 sections = {
21 tmp = {
22 path = "/nix/store";
23 comment = "test module";
24 };
25 };
26 };
27 };
28 };
29 in
30 {
31 a = mkNode false;
32 b = mkNode true;
33 };
34
35 testScript = ''
36 start_all()
37 a.wait_for_unit("rsync")
38 b.wait_for_unit("sockets.target")
39 b.succeed("rsync a::")
40 a.succeed("rsync b::")
41 '';
42}