1{
2 name = "mediatomb";
3
4 nodes = {
5 server = {
6 services.mediatomb = {
7 enable = true;
8 serverName = "Gerbera";
9 interface = "eth1";
10 openFirewall = true;
11 mediaDirectories = [
12 {
13 path = "/var/lib/gerbera/pictures";
14 recursive = false;
15 hidden-files = false;
16 }
17 {
18 path = "/var/lib/gerbera/audio";
19 recursive = true;
20 hidden-files = false;
21 }
22 ];
23 };
24 systemd.tmpfiles.rules = [
25 "d /var/lib/gerbera/pictures 0770 mediatomb mediatomb"
26 "d /var/lib/gerbera/audio 0770 mediatomb mediatomb"
27 ];
28 };
29
30 client = { };
31 };
32
33 testScript =
34 { nodes, ... }:
35 let
36 serverIP = nodes.server.networking.primaryIPAddress;
37 serverIPv6 = nodes.server.networking.primaryIPv6Address;
38 in
39 ''
40 start_all()
41
42 server.wait_for_unit("mediatomb")
43 server.wait_until_succeeds("nc -z ${serverIP} 49152")
44 server.succeed("curl -v --fail http://${serverIP}:49152/")
45 server.succeed("curl -v --fail http://[${serverIPv6}]:49152/")
46
47 client.wait_for_unit("multi-user.target")
48 page = client.succeed("curl -v --fail http://${serverIP}:49152/")
49 page = client.succeed("curl -v --fail http://[${serverIPv6}]:49152/")
50 assert "Gerbera" in page and "MediaTomb" not in page
51 '';
52}