at 21.11-pre 1.2 kB view raw
1import ./make-test-python.nix ({ pkgs, ... }: 2 3{ 4 name = "samba"; 5 6 meta.maintainers = [ pkgs.lib.maintainers.eelco ]; 7 8 nodes = 9 { client = 10 { pkgs, ... }: 11 { virtualisation.fileSystems = 12 { "/public" = { 13 fsType = "cifs"; 14 device = "//server/public"; 15 options = [ "guest" ]; 16 }; 17 }; 18 }; 19 20 server = 21 { ... }: 22 { services.samba.enable = true; 23 services.samba.shares.public = 24 { path = "/public"; 25 "read only" = true; 26 browseable = "yes"; 27 "guest ok" = "yes"; 28 comment = "Public samba share."; 29 }; 30 networking.firewall.allowedTCPPorts = [ 139 445 ]; 31 networking.firewall.allowedUDPPorts = [ 137 138 ]; 32 }; 33 }; 34 35 # client# [ 4.542997] mount[777]: sh: systemd-ask-password: command not found 36 37 testScript = 38 '' 39 server.start() 40 server.wait_for_unit("samba.target") 41 server.succeed("mkdir -p /public; echo bar > /public/foo") 42 43 client.start() 44 client.wait_for_unit("remote-fs.target") 45 client.succeed("[[ $(cat /public/foo) = bar ]]") 46 ''; 47})