Unverified Commit 22aa256c authored by Janik's avatar Janik Committed by GitHub
Browse files

Merge pull request #264882 from robryk/resticfix

nixos/restic: fix #264696 and add a regression test
parents dcd6057e 536401e9
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -345,7 +345,7 @@ in
            } // optionalAttrs (backup.environmentFile != null) {
              EnvironmentFile = backup.environmentFile;
            };
          } // optionalAttrs (backup.initialize || backup.dynamicFilesFrom != null || backup.backupPrepareCommand != null) {
          } // optionalAttrs (backup.initialize || doBackup || backup.backupPrepareCommand != null) {
            preStart = ''
              ${optionalString (backup.backupPrepareCommand != null) ''
                ${pkgs.writeScript "backupPrepareCommand" backup.backupPrepareCommand}
@@ -360,12 +360,12 @@ in
                ${pkgs.writeScript "dynamicFilesFromScript" backup.dynamicFilesFrom} >> ${filesFromTmpFile}
              ''}
            '';
          } // optionalAttrs (backup.dynamicFilesFrom != null || backup.backupCleanupCommand != null) {
          } // optionalAttrs (doBackup || backup.backupCleanupCommand != null) {
            postStop = ''
              ${optionalString (backup.backupCleanupCommand != null) ''
                ${pkgs.writeScript "backupCleanupCommand" backup.backupCleanupCommand}
              ''}
              ${optionalString (backup.dynamicFilesFrom != null) ''
              ${optionalString doBackup ''
                rm ${filesFromTmpFile}
              ''}
            '';
+11 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ import ./make-test-python.nix (
  let
    remoteRepository = "/root/restic-backup";
    remoteFromFileRepository = "/root/restic-backup-from-file";
    remoteNoInitRepository = "/root/restic-backup-no-init";
    rcloneRepository = "rclone:local:/root/restic-rclone-backup";

    backupPrepareCommand = ''
@@ -64,6 +65,11 @@ import ./make-test-python.nix (
                find /opt -mindepth 1 -maxdepth 1 ! -name a_dir # all files in /opt except for a_dir
              '';
            };
            remote-noinit-backup = {
              inherit passwordFile exclude pruneOpts paths;
              initialize = false;
              repository = remoteNoInitRepository;
            };
            rclonebackup = {
              inherit passwordFile paths exclude pruneOpts;
              initialize = true;
@@ -114,6 +120,7 @@ import ./make-test-python.nix (
          "cp -rT ${testDir} /opt",
          "touch /opt/excluded_file_1 /opt/excluded_file_2",
          "mkdir -p /root/restic-rclone-backup",
          "restic-remote-noinit-backup init",

          # test that remotebackup runs custom commands and produces a snapshot
          "timedatectl set-time '2016-12-13 13:45'",
@@ -130,6 +137,10 @@ import ./make-test-python.nix (
          "systemctl start restic-backups-remote-from-file-backup.service",
          'restic-remote-from-file-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"',

          # test that remote-noinit-backup produces a snapshot
          "systemctl start restic-backups-remote-noinit-backup.service",
          'restic-remote-noinit-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"',

          # test that restoring that snapshot produces the same directory
          "mkdir /tmp/restore-2",
          "${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} restore latest -t /tmp/restore-2",