nixos/paperless-ngx: fix startup order

The nixOS test failed sporadically with a timeout.
This is due to a race condition in the startup  of
the scheduler vs the task-queue.

The scheduler runs the migration scripts in "pre-start" and
celery isn't available, yet. The celery worker (paperless-task-queue)
was already started by systemd but was unable to connect
(as the migration scripts from "pre-start" still ran).

This fix adds the necessary "after" condition in the systemd
worker unit and adds a test to "paperless"

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
This commit is contained in:
Florian Brandes 2023-01-02 12:19:27 +01:00
parent 9ec889b4b8
commit 5b6881f4a0
2 changed files with 5 additions and 0 deletions

View file

@ -258,6 +258,7 @@ in
PrivateNetwork = false;
};
environment = env;
after = [ "paperless-scheduler.service" ];
};
# Reading the user-provided password file requires root access

View file

@ -26,6 +26,10 @@ import ./make-test-python.nix ({ lib, ... }: {
# Wait until server accepts connections
machine.wait_until_succeeds("curl -fs localhost:28981")
# Required for consuming documents via the web interface
with subtest("Task-queue gets ready"):
machine.wait_for_unit("paperless-task-queue.service")
with subtest("Add a document via the web interface"):
machine.succeed(
"convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "