feat: support restic check operation (#303)

This commit is contained in:
Gareth
2024-05-27 10:26:18 -07:00
committed by GitHub
parent 5a51ae7c20
commit ce42f68d0d
43 changed files with 1807 additions and 989 deletions

View File

@@ -7,10 +7,18 @@ Backrest supports hooks in response to operation lifecycle events e.g. in respon
Available event types are
- `CONDITION_ANY_ERROR` any operation has failed.
- `CONDITION_SNAPSHOT_START` the start of a backup operation (e.g. corresponds to a call to `restic backup`)
- `CONDITION_SNAPSHOT_START` the start of a backup operation (e.g. corresponds to a call to `restic backup`, supports error behavior)
- `CONDITION_SNAPSHOT_END` the end of a backup operation (e.g. corresponds to `restic backup` completing). Note that Snapshot End will still be called if a backup failed.
- `CONDITION_SNAPSHOT_ERROR` an error occurred during a backup operation (e.g. `restic backup` returned a non-zero exit code OR invalid output).
- `CONDITION_SNAPSHOT_WARNING` a warning occurred during a backup operation (e.g. a file was partially read).
- Prune hooks:
- `CONDITION_PRUNE_START` the start of a prune operation (e.g. corresponds to a call to `restic prune`, supports error behavior)
- `CONDITION_PRUNE_SUCCESS` the end of a prune operation e.g. `restic prune` completed successfully.
- `CONDITION_PRUNE_ERROR` an error occurred during a prune operation (e.g. `restic prune` returned a non-zero exit code).
- Check hooks:
- `CONDITION_CHECK_START` the start of a check operation (e.g. corresponds to a call to `restic check`, supports error behavior)
- `CONDITION_CHECK_SUCCESS` the end of a check operation e.g. `restic check` completed successfully.
- `CONDITION_CHECK_ERROR` an error occurred during a check operation (e.g. `restic check` returned a non-zero exit code).
## Notification Services
@@ -22,6 +30,17 @@ Available event types are
| Shoutrrr | https://containrrr.dev/shoutrrr/v0.8/ |
| Command | See command cookbook |
## Error Behavior
Some hooks can specify an error behavior (today this is only command hooks). This determines what happens when the hook generates an error.
The available error behaviors are:
- `ON_ERROR_IGNORE` - ignore the error and continue running hooks and the operation.
- `ON_ERROR_CANCEL` - cancel the operation and do not run any further hooks. The operation is marked as cancelled.
- `ON_ERROR_FATAL` - cancel the operation and do not run any further hooks. The operation is marked as failed and error handler hooks may be triggered.
## Using Templates
Most hooks will generate either a notification or execute a script. The script / notification is typically formatted as a Go template. The https://pkg.go.dev/text/template docs provide a very technical overview of Go template capabilities. See below for info about the available variables and for some examples.