restic/cmd/restic
jo ea59896bd6
Add a global option --retry-lock
Fixes restic#719

If the option is passed, restic will wait the specified duration of time
and retry locking the repo every 10 seconds (or more often if the total
timeout is relatively small).

- Play nice with json output
- Reduce wait time in lock tests
- Rework timeout last attempt
- Reduce test wait time to 0.1s
- Use exponential back off for the retry lock
- Don't pass gopts to lockRepo functions
- Use global variable for retry sleep setup
- Exit retry lock on cancel
- Better wording for flag help
- Reorder debug statement
- Refactor tests
- Lower max sleep time to 1m
- Test that we cancel/timeout in time
- Use non blocking sleep function
- Refactor into minDuration func

Co-authored-by: Julian Brost <julian@0x4a42.net>
2023-04-07 16:24:14 +02:00
..
testdata copy: test that trees with unstable json encoding are properly copied 2021-03-08 22:16:48 +01:00
.gitignore Moves files 2017-07-23 14:19:13 +02:00
cleanup.go Allow cleanup handlers to filter the exit code 2022-08-26 23:04:59 +02:00
cmd_backup.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_backup_test.go test: Use testing.T.Cleanup to remove tempdirs 2022-12-09 14:23:55 +01:00
cmd_cache.go cmd, ui: Deduplicate formatting utilities 2022-10-23 13:40:07 +02:00
cmd_cat.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_check.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_check_test.go [#issue 3490] Support for specifying file size in read-data-subset 2021-11-02 15:25:46 +05:30
cmd_copy.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_debug.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_diff.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_dump.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_dump_test.go dump: Add test for splitPath 2020-08-30 16:00:48 +02:00
cmd_find.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_forget.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_generate.go Add powershell completion 2022-09-11 00:44:12 +02:00
cmd_init.go init: use standard name message_type to distinguish JSON messages 2022-12-02 21:33:03 +01:00
cmd_key.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_list.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_ls.go cmd, restic: Refactor and fix snapshot filtering 2023-02-19 15:04:25 +01:00
cmd_ls_test.go Add file mode in symbolic notation to ls --json 2021-11-16 19:45:50 +02:00
cmd_migrate.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_mount.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_options.go Some options fixes 2020-12-23 23:26:04 +03:00
cmd_prune.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_rebuild_index.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_recover.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_restore.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_rewrite.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_self_update.go Reinstate selfupdate tag to make builds without self-update work 2022-12-26 21:46:22 +04:00
cmd_snapshots.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_snapshots_test.go Add more error checks 2021-01-30 20:02:37 +01:00
cmd_stats.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_tag.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
cmd_unlock.go pass global context through cobra 2022-10-03 00:19:46 +02:00
cmd_version.go Add documentation on exit status codes to man pages 2020-02-12 23:09:26 +01:00
delete.go Remove ctx from globalOptions 2022-10-03 00:19:46 +02:00
doc.go Moves files 2017-07-23 14:19:13 +02:00
exclude.go Cleanup exclude pattern collection 2022-11-12 19:55:22 +01:00
exclude_test.go test: Use testing.T.Cleanup to remove tempdirs 2022-12-09 14:23:55 +01:00
find.go cmd, restic: Refactor and fix snapshot filtering 2023-02-19 15:04:25 +01:00
flags_test.go Replace most usages of ioutil with the underlying function 2022-12-02 19:36:43 +01:00
format.go cmd, ui: Deduplicate formatting utilities 2022-10-23 13:40:07 +02:00
global.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
global_debug.go Allow cleanup handlers to filter the exit code 2022-08-26 23:04:59 +02:00
global_release.go add go:build headers everywhere 2022-03-28 22:23:47 +02:00
global_test.go test: Use testing.T.Cleanup to remove tempdirs 2022-12-09 14:23:55 +01:00
integration_filter_pattern_test.go Replace most usages of ioutil with the underlying function 2022-12-02 19:36:43 +01:00
integration_fuse_test.go mount: only start next test after mount command cleanup is complete 2022-11-11 21:43:01 +01:00
integration_helpers_test.go Replace most usages of ioutil with the underlying function 2022-12-02 19:36:43 +01:00
integration_helpers_unix_test.go Replace usages of ioutil.ReadDir 2022-12-02 19:54:27 +01:00
integration_helpers_windows_test.go Replace usages of ioutil.ReadDir 2022-12-02 19:54:27 +01:00
integration_rewrite_test.go rewrite: Add tests for further ways to use the command 2022-11-12 19:55:22 +01:00
integration_test.go restore: Add progress bar 2023-04-07 12:08:23 +02:00
local_layout_test.go Support specifying multiple host flags for various commands 2020-02-26 22:17:59 +01:00
lock.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
lock_test.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
main.go Don't buffer the golang log output when running tests 2022-12-10 16:08:27 +01:00
progress.go progress: extract progress updating into Updater struct 2023-01-14 01:13:08 +01:00
secondary_repo.go Do not include the actual values of environment variables in help output 2022-08-26 20:39:54 +02:00
secondary_repo_test.go test: Use testing.T.Cleanup to remove tempdirs 2022-12-09 14:23:55 +01:00