at master 938 B view raw
1{ pkgs, lib, ... }: 2{ 3 name = "systemd-userdbd"; 4 nodes.machine = 5 { config, pkgs, ... }: 6 { 7 services.userdbd.enable = true; 8 9 users.users.test-user-nss = { 10 isNormalUser = true; 11 }; 12 13 environment.etc."userdb/test-user-dropin.user".text = builtins.toJSON { 14 userName = "test-user-dropin"; 15 }; 16 17 environment.systemPackages = with pkgs; [ libvarlink ]; 18 }; 19 testScript = '' 20 import json 21 from shlex import quote 22 23 def getUserRecord(name): 24 Interface = "unix:/run/systemd/userdb/io.systemd.Multiplexer/io.systemd.UserDatabase" 25 payload = json.dumps({ 26 "service": "io.systemd.Multiplexer", 27 "userName": name 28 }) 29 return json.loads(machine.succeed(f"varlink call {Interface}.GetUserRecord {quote(payload)}")) 30 31 machine.wait_for_unit("systemd-userdbd.socket") 32 getUserRecord("test-user-nss") 33 getUserRecord("test-user-dropin") 34 ''; 35}