at master 1.3 kB view raw
1{ pkgs, ... }: 2{ 3 name = "moonraker"; 4 meta = with pkgs.lib.maintainers; { 5 maintainers = [ zhaofengli ]; 6 }; 7 8 nodes = { 9 printer = 10 { config, pkgs, ... }: 11 { 12 security.polkit.enable = true; 13 14 services.moonraker = { 15 enable = true; 16 allowSystemControl = true; 17 18 settings = { 19 authorization = { 20 trusted_clients = [ 21 "127.0.0.0/8" 22 "::1/128" 23 ]; 24 }; 25 }; 26 }; 27 28 services.klipper = { 29 enable = true; 30 31 user = "moonraker"; 32 group = "moonraker"; 33 34 # No mcu configured so won't even enter `ready` state 35 settings = { }; 36 }; 37 }; 38 }; 39 40 testScript = '' 41 printer.start() 42 43 printer.wait_for_unit("klipper.service") 44 printer.wait_for_unit("moonraker.service") 45 printer.wait_until_succeeds("curl http://localhost:7125/printer/info | grep -v 'Not Found' >&2", timeout=30) 46 47 with subtest("Check that we can perform system-level operations"): 48 printer.succeed("curl -X POST http://localhost:7125/machine/services/stop?service=klipper | grep ok >&2") 49 printer.wait_until_succeeds("systemctl --no-pager show klipper.service | grep ActiveState=inactive", timeout=10) 50 ''; 51}