From 4994f1c69d940bc772ff0010260791b10b3f009c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Wed, 20 Mar 2024 08:01:16 +0100 Subject: [PATCH] backups: add test for pre and post restore command --- checks/backups/flake-module.nix | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/checks/backups/flake-module.nix b/checks/backups/flake-module.nix index 485e625b2..15f5e75cd 100644 --- a/checks/backups/flake-module.nix +++ b/checks/backups/flake-module.nix @@ -76,7 +76,15 @@ clanCore.secretStore = "vm"; clanCore.clanDir = ../..; - environment.systemPackages = [ self.packages.${pkgs.system}.clan-cli ]; + environment.systemPackages = [ + self.packages.${pkgs.system}.clan-cli + (pkgs.writeShellScriptBin "pre-restore-command" '' + touch /var/test-service/pre-restore-command + '') + (pkgs.writeShellScriptBin "post-restore-command" '' + touch /var/test-service/post-restore-command + '') + ]; environment.etc.install-closure.source = "${closureInfo}/store-paths"; nix.settings = { substituters = lib.mkForce [ ]; @@ -86,6 +94,12 @@ }; system.extraDependencies = dependencies; clanCore.state.test-backups.folders = [ "/var/test-backups" ]; + + clanCore.state.test-service = { + preRestoreCommand = "pre-restore-command"; + postRestoreCommand = "post-restore-command"; + folders = [ "/var/test-service" ]; + }; clan.borgbackup.destinations.test-backup.repo = "borg@machine:."; services.borgbackup.repos.test-backups = { @@ -110,7 +124,7 @@ start_all() # dummy data - machine.succeed("mkdir -p /var/test-backups") + machine.succeed("mkdir -p /var/test-backups /var/test-service") machine.succeed("echo testing > /var/test-backups/somefile") # create @@ -127,6 +141,8 @@ machine.succeed("rm -f /var/test-backups/somefile") machine.succeed(f"clan --debug --flake ${self} backups restore test-backup borgbackup {out} >&2") assert machine.succeed("cat /var/test-backups/somefile").strip() == "testing", "restore failed" + machine.succeed("test -f /var/test-service/pre-restore-command") + machine.succeed("test -f /var/test-service/post-restore-command") ''; } { inherit pkgs self; }; };