2
2
mirror of https://github.com/octoleo/restic.git synced 2024-06-26 20:33:30 +00:00
restic/cmd/restic
Michael Eischer 8e1e3844aa backend: factor out connection limiting and parameter validation
The SemaphoreBackend now uniformly enforces the limit of concurrent
backend operations. In addition, it unifies the parameter validation.

The List() methods no longer uses a semaphore. Restic already never runs
multiple list operations in parallel.

By managing the semaphore in a wrapper backend, the sections that hold a
semaphore token grow slightly. However, the main bottleneck is IO, so
this shouldn't make much of a difference.

The key insight that enables the SemaphoreBackend is that all of the
complex semaphore handling in `openReader()` still happens within the
original call to `Load()`. Thus, getting and releasing the semaphore
tokens can be refactored to happen directly in `Load()`. This eliminates
the need for wrapping the reader in `openReader()` to release the token.
2023-04-14 22:32:15 +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_test.go test: Use testing.T.Cleanup to remove tempdirs 2022-12-09 14:23:55 +01:00
cmd_backup.go Add a global option --retry-lock 2023-04-07 16:24:14 +02: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_test.go [#issue 3490] Support for specifying file size in read-data-subset 2021-11-02 15:25:46 +05:30
cmd_check.go Add a global option --retry-lock 2023-04-07 16:24:14 +02:00
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_test.go dump: Add test for splitPath 2020-08-30 16:00:48 +02:00
cmd_dump.go Add a global option --retry-lock 2023-04-07 16:24:14 +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_test.go Add file mode in symbolic notation to ls --json 2021-11-16 19:45:50 +02:00
cmd_ls.go cmd, restic: Refactor and fix snapshot filtering 2023-02-19 15:04:25 +01: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_test.go Add more error checks 2021-01-30 20:02:37 +01:00
cmd_snapshots.go Add a global option --retry-lock 2023-04-07 16:24:14 +02: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_test.go test: Use testing.T.Cleanup to remove tempdirs 2022-12-09 14:23:55 +01:00
exclude.go Cleanup exclude pattern collection 2022-11-12 19:55:22 +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_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
global.go backend: factor out connection limiting and parameter validation 2023-04-14 22:32:15 +02: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_test.go Merge branch 'master' into feature-wait-for-unlock 2023-04-07 20:32:21 +02:00
lock.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_test.go test: Use testing.T.Cleanup to remove tempdirs 2022-12-09 14:23:55 +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