1{ pkgs, ... }:
2
3{
4 name = "samba-wsdd";
5 meta.maintainers = with pkgs.lib.maintainers; [ izorkin ];
6
7 nodes = {
8 client_wsdd =
9 { pkgs, ... }:
10 {
11 services.samba-wsdd = {
12 enable = true;
13 openFirewall = true;
14 interface = "eth1";
15 workgroup = "WORKGROUP";
16 hostname = "CLIENT-WSDD";
17 discovery = true;
18 extraOptions = [ "--no-host" ];
19 };
20 };
21
22 server_wsdd =
23 { ... }:
24 {
25 services.samba-wsdd = {
26 enable = true;
27 openFirewall = true;
28 interface = "eth1";
29 workgroup = "WORKGROUP";
30 hostname = "SERVER-WSDD";
31 };
32 };
33 };
34
35 testScript = ''
36 client_wsdd.start()
37 client_wsdd.wait_for_unit("samba-wsdd")
38
39 server_wsdd.start()
40 server_wsdd.wait_for_unit("samba-wsdd")
41
42 client_wsdd.wait_until_succeeds(
43 "echo list | ${pkgs.libressl.nc}/bin/nc -N -U /run/wsdd/wsdd.sock | grep -i SERVER-WSDD"
44 )
45 '';
46}