Michael Eischer
ad48751adb
bump required go version to 1.21
2024-08-10 19:16:10 +02:00
Michael Eischer
05571286b2
Merge pull request #4946 from mikix/json-errors
...
Improve error handling in --json mode
2024-08-10 17:04:56 +00:00
Michael Eischer
a164789321
Merge pull request #4977 from MichaelEischer/warn-on-incomplete-metadata
...
backup: warn but store store item if extended metadata is incomplete
2024-08-10 17:59:25 +02:00
Michael Eischer
73c9780321
backup: store but warn if extended metadata for item is incomplete
...
Files were not included in the backup if the extended metadata for the
file could not be read. This is rather drastic. Instead settle on
returning a warning but still including the file in the backup.
2024-08-03 22:25:29 +02:00
Michael Terry
88f59fc2d6
json: switch backup and restore errors from string to struct types
...
This keeps backwards compatibility with the previous empty structs.
And maybe we'd want to put other fields into the inner struct later,
rather than the outer message.
2024-08-03 16:21:44 -04:00
Michael Eischer
a48baf6f3a
Merge pull request #4976 from textaligncenter/backup-panic
...
fix panic in fs_reader
2024-08-03 19:56:15 +00:00
Michael Terry
a376323331
restore: print JSON versions of errors in --json mode
...
Previously, they were printed as freeform text.
This also adds a ui.Terminal interface to make writing
tests easier and also adds a few tests.
2024-08-03 15:18:46 -04:00
Michael Eischer
e622135e7e
Merge pull request #4974 from MichaelEischer/fix-cache-debug-log
...
cache: fix confusing debug log
2024-08-03 21:12:32 +02:00
textaligncenter
d8ea178e69
fix panic in fs_reader
2024-08-03 19:08:04 +00:00
Michael Terry
ad2585af67
backup: show actual error strings in --json mode
...
Previously, an error JSON fragment would look like:
{"message_type": "error", "error": {}}
This is because encoding/json cannot marshal an error interface.
Instead, we now call .Error() to get the string value.
2024-08-03 15:07:52 -04:00
Michael Terry
f4bdfea1c9
backup: print scanner errors to stderr, not stdout
2024-08-03 15:07:52 -04:00
Michael Eischer
d2f7c5a9c6
Merge pull request #4978 from konidev20/fix-gh-4949-repair-index-spurious-index
...
rewrite: skip saving empty indexes during MasterIndex.Rewrite
2024-08-03 18:53:57 +00:00
Srigovind Nayak
068d5b95c3
rewrite: skip saving empty indexes during MasterIndex.Rewrite
2024-08-03 23:34:59 +05:30
Michael Eischer
d4db5a364e
Merge pull request #4958 from mikix/restore-errors
...
restore: clean up error handling when restoring metadata
2024-08-03 17:58:54 +00:00
Michael Eischer
4266dca1b6
cache: fix confusing debug log
2024-08-03 18:51:38 +02:00
Michael Eischer
d407abb50f
Merge pull request #4960 from MichaelEischer/reduce-cancelation-delays
...
Add more checks for canceled contexts
2024-08-03 18:23:20 +02:00
Michael Eischer
ae1cb889dd
Add more checks for canceled contexts
2024-07-31 19:30:47 +02:00
Michael Terry
6a97833337
restore: clean up error handling when restoring metadata
...
- Fix a logic error that instead of reporting the *first*
metadata-setting error that appears, we were instead reporting the
*last* error (and only if the lchown call failed!).
- Don't show any errors when setting metadata for files in non-root
mode (things like timestamps, attributes). Previously, only lchown
errors were skipped. But other kinds of attribute errors make sense
to skip as well. The code path happened to work correctly before
because of the above logic error. But once that was fixed, this
change needed to happen too.
2024-07-30 19:27:34 -04:00
Michael Eischer
a9be986782
restorer: add minimal long path handling test
2024-07-29 21:11:47 +02:00
Michael Eischer
62c4a5e9a0
fs: fix long path handling for ResetPermissions, ClearAttributes and security descriptors
2024-07-29 20:10:58 +02:00
Michael Eischer
729e009485
replace all uses of target in relation to backup
2024-07-24 19:40:53 +02:00
Michael Eischer
fa5ff0873a
Merge pull request #4925 from MichaelEischer/fix-restore-truncation
...
restore: Fix truncation of uptodate files
2024-07-21 12:28:12 +02:00
Michael Eischer
0dcac90bea
restorer: don't track already uptodate blobs
2024-07-21 12:03:56 +02:00
Michael Eischer
10efa77103
restorer: add test for file truncation case
2024-07-21 12:03:56 +02:00
Michael Eischer
6f8e17a463
restorer: minor code cleanups
2024-07-21 12:03:56 +02:00
Michael Eischer
5d6ce59a8d
restorer: also truncate files if their content is already uptodate
...
Files for which no blobs have to be restored, still have to be truncated
to the correct size. Take a file with content "foobar" that should be
replaced by restore with content "foo". The first three bytes are
already uptodate, such that no data has to be written. As file
truncation normally happens when writing data, a special case is
necessary.
This no blobs written special case is unified with the empty file
special case.
2024-07-21 12:03:56 +02:00
Michael Eischer
59c880fce3
restorer: only show size in text output for files
2024-07-20 12:46:28 +02:00
Alex Johnson
3bf2927006
Update snapshot summary on rewrite
...
Signed-off-by: Alex Johnson <hello@alex-johnson.net>
2024-07-16 12:06:50 -05:00
Michael Eischer
dcfffd7779
restore: extend overwrite test for small files
2024-07-14 11:30:41 +02:00
Michael Eischer
44e3610b32
restore: progress bar total on windows
2024-07-14 11:21:11 +02:00
Michael Eischer
98cfb2c4c8
restore: test progress reporting for partially up to date files
2024-07-14 11:21:11 +02:00
Michael Eischer
26aa65e0d4
restore: add regression test for corrupt in-place restore of large file
2024-07-14 11:21:11 +02:00
Michael Eischer
2833b2f699
restore: fix progress bar for partially up to date files
2024-07-14 11:21:11 +02:00
Michael Eischer
c77b2d5ca2
restore: avoid long cancelation delay for frequently used blobs
2024-07-14 11:21:11 +02:00
Michael Eischer
f64191da9c
restore: improve reporting of cancelation errors
2024-07-14 11:21:08 +02:00
Michael Eischer
2971a769da
restore: fix corrupt restore of partially up to date files
2024-07-12 22:27:00 +02:00
Michael Eischer
40e5163114
restore: properly cancel file verification
2024-07-12 22:26:22 +02:00
Michael Eischer
31887ea9aa
restore: fix hang on command cancelation
2024-07-12 22:24:35 +02:00
Michael Eischer
375c572c4f
Merge pull request #4884 from MichaelEischer/lock-and-not-exist-error-codes
...
Return different exit code if repo is locked or does not exist
2024-07-12 21:05:52 +02:00
Michael Eischer
8731667156
restore: do not delete target if it is a file
...
This is implicitly achieved by creating the target directory as the
first step, which will fail if a file already exist in its place.
2024-07-10 22:08:49 +02:00
Michael Eischer
94fdca08c4
return exit code 10 if repository does not exist
2024-07-10 21:46:26 +02:00
Michael Eischer
d8dbc71deb
Merge pull request #4908 from MichaelEischer/improve-anonymous-s3
...
S3: Improve anonymous access
2024-07-10 20:19:23 +02:00
Michael Eischer
f74e70cc36
s3: forbid anonymous authentication unless explicitly requested
2024-07-10 20:10:27 +02:00
Michael Eischer
4b364940aa
s3: use http client with configured timeouts for s3 IAM communication
...
The default client has no timeouts configured opening network
connections. Thus, if 169.254.169.254 is inaccessible, then the client
would wait for until the operating system gives up, which will take
several minutes.
2024-07-07 11:32:40 +02:00
Michael Eischer
a2a2401a68
s3: prevent repeated credential queries with anonymous authentication
2024-07-07 11:31:04 +02:00
Michael Eischer
aedead2823
ui/termstatus: fix clearing status lines
...
To clear the status lines, they should be set to an empty array to
prevent future updates of those lines. Setting the status lines to an
array containing an empty string is wrong as this causes the output to
continuously add that empty status line after each message.
2024-07-06 11:27:35 +02:00
Michael Eischer
868219aad1
restore: test --dry-run plus --delete
2024-07-05 22:38:39 +02:00
Michael Eischer
aa8e18cf32
restore: add deletions to progress output
2024-07-05 22:38:39 +02:00
Michael Eischer
f4b15fdd96
restore: allow deleting a directory to replace it with a file
...
When the `--delete` option is specified, recursively delete directories
that should be replaced with a file.
2024-07-05 22:38:39 +02:00
Michael Eischer
168fc09d5f
restore: use case insensitive file name comparison on windows
2024-07-05 22:38:39 +02:00