From d4b989cafc77ffa10affa46a730159ff30726bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Tue, 16 Apr 2024 18:40:49 +0200 Subject: [PATCH] nixos/deconz: delay signalling service readiness until it's actually up Fixes test flakiness (`nix-build -A nixosTests.deconz`). --- nixos/modules/services/networking/deconz.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nixos/modules/services/networking/deconz.nix b/nixos/modules/services/networking/deconz.nix index 05b724708777..eaa7759d0407 100644 --- a/nixos/modules/services/networking/deconz.nix +++ b/nixos/modules/services/networking/deconz.nix @@ -93,6 +93,13 @@ in # be garbage collected. Ensure the file gets "refreshed" on every start. rm -f ${stateDir}/.local/share/dresden-elektronik/deCONZ/zcldb.txt ''; + postStart = '' + # Delay signalling service readiness until it's actually up. + while ! "${lib.getExe pkgs.curl}" -sSfl -o /dev/null "http://${cfg.listenAddress}:${toString cfg.httpPort}"; do + echo "Waiting for TCP port ${toString cfg.httpPort} to be open..." + sleep 1 + done + ''; environment = { HOME = stateDir; XDG_RUNTIME_DIR = "/run/${name}";