Merge pull request #220656 from oxzi/restic-cache-fix
nixos/restic: generalize cache configuration
This commit is contained in:
commit
3839340fdb
@ -303,8 +303,8 @@ in
|
||||
then if (backup.paths != null) then concatStringsSep " " backup.paths else ""
|
||||
else "--files-from ${filesFromTmpFile}";
|
||||
pruneCmd = optionals (builtins.length backup.pruneOpts > 0) [
|
||||
(resticCmd + " forget --prune --cache-dir=%C/restic-backups-${name} " + (concatStringsSep " " backup.pruneOpts))
|
||||
(resticCmd + " check --cache-dir=%C/restic-backups-${name} " + (concatStringsSep " " backup.checkOpts))
|
||||
(resticCmd + " forget --prune " + (concatStringsSep " " backup.pruneOpts))
|
||||
(resticCmd + " check " + (concatStringsSep " " backup.checkOpts))
|
||||
];
|
||||
# Helper functions for rclone remotes
|
||||
rcloneRemoteName = builtins.elemAt (splitString ":" backup.repository) 1;
|
||||
@ -314,6 +314,7 @@ in
|
||||
in
|
||||
nameValuePair "restic-backups-${name}" ({
|
||||
environment = {
|
||||
RESTIC_CACHE_DIR = "%C/restic-backups-${name}";
|
||||
RESTIC_PASSWORD_FILE = backup.passwordFile;
|
||||
RESTIC_REPOSITORY = backup.repository;
|
||||
RESTIC_REPOSITORY_FILE = backup.repositoryFile;
|
||||
@ -332,7 +333,7 @@ in
|
||||
restartIfChanged = false;
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = (optionals (backupPaths != "") [ "${resticCmd} backup --cache-dir=%C/restic-backups-${name} ${concatStringsSep " " (backup.extraBackupArgs ++ excludeFlags)} ${backupPaths}" ])
|
||||
ExecStart = (optionals (backupPaths != "") [ "${resticCmd} backup ${concatStringsSep " " (backup.extraBackupArgs ++ excludeFlags)} ${backupPaths}" ])
|
||||
++ pruneCmd;
|
||||
User = backup.user;
|
||||
RuntimeDirectory = "restic-backups-${name}";
|
||||
|
@ -100,7 +100,7 @@ import ./make-test-python.nix (
|
||||
"${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} snapshots",
|
||||
'${pkgs.restic}/bin/restic -r ${remoteFromFileRepository} -p ${passwordFile} snapshots"',
|
||||
"${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots",
|
||||
"grep 'backup .* /opt' /tmp/fake-restic.log",
|
||||
"grep 'backup.* /opt' /tmp/fake-restic.log",
|
||||
)
|
||||
server.succeed(
|
||||
# set up
|
||||
@ -129,8 +129,8 @@ import ./make-test-python.nix (
|
||||
|
||||
# test that custompackage runs both `restic backup` and `restic check` with reasonable commandlines
|
||||
"systemctl start restic-backups-custompackage.service",
|
||||
"grep 'backup .* /opt' /tmp/fake-restic.log",
|
||||
"grep 'check .* --some-check-option' /tmp/fake-restic.log",
|
||||
"grep 'backup.* /opt' /tmp/fake-restic.log",
|
||||
"grep 'check.* --some-check-option' /tmp/fake-restic.log",
|
||||
|
||||
# test that we can create four snapshots in remotebackup and rclonebackup
|
||||
"timedatectl set-time '2017-12-13 13:45'",
|
||||
|
Loading…
Reference in New Issue
Block a user