Michael Eischer
2f0049cd6c
Merge pull request #5141 from richgrov/missing-azure-env-error
...
Return error if AZURE_ACCOUNT_NAME not set
2024-12-01 14:01:56 +01:00
Michael Eischer
0bf8af7188
Merge pull request #5138 from vmlemon/issue-5131
...
Implement basic DragonFlyBSD support
2024-11-30 17:32:59 +01:00
Michael Eischer
9a99141a5f
fs: remove os.FileInfo from fs.ExtendedFileInfo
...
Only the `Sys()` value from os.FileInfo is kept as field `sys` to
support Windows. The os.FileInfo removal ensures that for values like
`ModTime` that existed in both data structures there's no more confusion
which value is actually used.
2024-11-30 17:07:36 +01:00
Michael Eischer
847b2efba2
archiver: remove fs parameter from fileChanged function
2024-11-30 16:19:16 +01:00
Michael Eischer
641390103d
fs: inline ExtendedStat
2024-11-30 16:19:16 +01:00
Michael Eischer
5df6bf80b1
fs: retry vss creation on VSS_E_SNAPSHOT_SET_IN_PROGRESS error
...
Depending on the change packages, the VSS tests from ./cmd/restic and
the fs package may overlap in time. This causes the snapshot creation to
fail. Add retries in that case.
2024-11-30 16:07:18 +01:00
Tyson Key
3c0ceda536
Add basic support for DragonFlyBSD
2024-11-30 15:42:15 +01:00
Michael Eischer
c5fb46da53
archiver: ignore files removed in the meantime
2024-11-30 15:30:42 +01:00
Michael Eischer
8642049532
Merge pull request #5143 from MichaelEischer/fs-handle-interface
...
fs: rework FS interface to be handle based
2024-11-30 15:29:31 +01:00
Michael Eischer
8644bb145b
Merge pull request #5134 from MichaelEischer/better-time-restore-error
...
restore: improve error if timestamp fails to restore
2024-11-30 13:09:33 +01:00
Michael Eischer
b51bf0c0c4
fs: test File implementation of Local FS
2024-11-16 16:09:17 +01:00
Michael Eischer
6cb19e0190
archiver: fix file type change test
...
The test did not test the case that the type of a file changed
unexpectedly.
2024-11-16 16:09:17 +01:00
Michael Eischer
d7f4b9db60
fs: deduplicate placeholders for generic and xattrs
2024-11-16 16:09:17 +01:00
Michael Eischer
087f95a298
fs: make generic and extended attrs independent of each other
2024-11-16 15:38:56 +01:00
Michael Eischer
6084848e5a
fs: fix O_NOFOLLOW for metadata handles on Windows
2024-11-16 15:38:56 +01:00
Michael Eischer
48dbefc37e
fs / archiver: convert to handle based interface
...
The actual implementation still relies on file paths, but with the
abstraction layer in place, an FS implementation can ensure atomic file
accesses in the future.
2024-11-16 12:56:23 +01:00
Michael Eischer
2f2ce9add2
fs: remove Stat from FS interface
2024-11-16 12:56:23 +01:00
Michael Eischer
623ba92b98
fs: drop unused permission parameter from OpenFile
2024-11-16 12:56:23 +01:00
Michael Eischer
b402e8a6fc
fs: stricter enforcement to only call readdir on a directory
...
Use O_DIRECTORY to prevent opening any other than a directory in
readdirnames.
2024-11-16 12:56:23 +01:00
Michael Eischer
f8031561f2
archiver: deduplicate error filtering
2024-11-15 17:58:06 +01:00
Michael Eischer
49ef3ebec3
restic: add missing space in error message
2024-11-15 17:52:09 +01:00
Richard Grover
dfbd4fb983
Error if AZURE_ACCOUNT_NAME not set
2024-11-13 08:02:22 -07:00
Michael Eischer
1133498ef8
Merge pull request #5046 from konidev20/fix-gh-4521-azure-blob-storage-add-support-for-access-tiers
...
azure: add support for access tiers hot, cool and cold
2024-11-11 22:01:52 +01:00
Michael Eischer
9c758313e3
Merge pull request #5119 from MichaelEischer/backup-json-start-end-time
...
backup: include start and end time in json output
2024-11-11 21:50:30 +01:00
Michael Eischer
a73ae7ba1a
restore: improve error if timestamp fails to restore
2024-11-11 21:37:28 +01:00
Michael Eischer
408ec41a1d
Merge pull request #5123 from MichaelEischer/fix-removable-media-handling
...
fs: fallback to low privilege security descriptors on access denied
2024-11-03 21:35:38 +01:00
Michael Eischer
270e7b7679
Merge pull request #5122 from restic/bump-golangci-lint
...
Bump go and golangci lint version
2024-11-03 21:34:25 +01:00
Michael Eischer
d5bd3fcda5
Merge pull request #5112 from MichaelEischer/fix-vss-root-volume
...
Fix VSS metadata error (master)
2024-11-03 21:30:39 +01:00
Michael Eischer
f9a90aae89
fs: fallback to low privilege security descriptors on access denied
2024-11-01 19:10:52 +01:00
Michael Eischer
289159beaf
fs: remove redundant fixpath in vss code
2024-11-01 19:03:45 +01:00
Michael Eischer
4052a5927c
fs: move getVolumePathName function
2024-11-01 19:03:45 +01:00
Michael Eischer
d3c3390a51
ls: proper error handling if output is not possible
2024-11-01 17:07:43 +01:00
Michael Eischer
569a117a1d
improve fprintf related error handling
2024-11-01 17:07:43 +01:00
Michael Eischer
e65f4e2231
backup: include start and end time in json output
...
The timestamps were already stored in the created snapshot.
2024-11-01 16:31:34 +01:00
Michael Eischer
ded9fc7690
Merge pull request #5101 from MichaelEischer/sftp-load-error
...
sftp: check for broken connection in Load/List operation
2024-11-01 16:05:29 +01:00
Michael Eischer
b3b173a47c
fs: use non existing vss path to avoid flaky test
...
The test used \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1 , which if
it exists and supports extended attributes can cause the test to fail.
2024-11-01 15:38:05 +01:00
Michael Eischer
71c185313e
sftp: check for broken connection in Load/List operation
2024-11-01 15:33:27 +01:00
Michael Eischer
58dc4a6892
backend/retry: hide final log for stat()
method
...
stat is only used to check the config file's existence. We don't want
log output in this case.
2024-11-01 15:17:54 +01:00
Michael Eischer
62af5f0b4a
restic: test path handling of volume shadow copy root path
2024-10-31 22:06:50 +01:00
Michael Eischer
1d0d5d87bc
fs: fix error in fillGenericAttributes for vss volumes
...
Extended attributes and security descriptors apparently cannot be
retrieved from a vss volume. Fix the volume check to correctly detect
vss volumes and just completely disable extended attributes for volumes.
2024-10-31 22:06:50 +01:00
Michael Eischer
03aad742d3
fs: add correct vss support to fixpath
...
Paths that only contain the volume shadow copy snapshot name require
special treatment. These paths must end with a slash for regular file
operations to work.
2024-10-31 22:06:50 +01:00
Michael Eischer
15b7fb784f
fs: cleanup fixpath
2024-10-31 21:49:03 +01:00
Michael Eischer
e320edd416
Merge pull request #5048 from MichaelEischer/fix-macos-fuse
...
Fix unusable `mount` on macOS Sonoma
2024-10-23 22:51:00 +02:00
Michael Eischer
821000cb68
Merge pull request #5097 from MichaelEischer/fix-vss-metadata
...
backup: read extended metadata from snapshot
2024-10-22 19:23:06 +02:00
Srigovind Nayak
db686592a1
debug: azure add debug log to show access-tier
2024-10-20 20:24:49 +05:30
Srigovind Nayak
bff3341d10
azure: add support for hot, cool, or cool access tiers
2024-10-20 15:27:21 +05:30
greatroar
8f20d5dcd5
fs: Refactor UtimesNano replacements
...
Previously, nodeRestoreTimestamps would do something like
if node.Type == restic.NodeTypeSymlink {
return nodeRestoreSymlinkTimestamps(...)
}
return syscall.UtimesNano(...)
where nodeRestoreSymlinkTimestamps was either a no-op or a
reimplementation of syscall.UtimesNano that handles symlinks, with some
repeated converting between timestamp types. The Linux implementation
was a bit clumsy, requiring three syscalls to set the timestamps.
In this new setup, there is a function utimesNano that has three
implementations:
* on Linux, it's a modified syscall.UtimesNano that uses
AT_SYMLINK_NOFOLLOW and AT_FDCWD so it can handle any type in a single
call;
* on other Unix platforms, it just calls the syscall function after
skipping symlinks;
* on Windows, it's the modified UtimesNano that was previously called
nodeRestoreSymlinkTimestamps, except with different arguments.
2024-10-19 12:04:09 +02:00
greatroar
f967a33ccc
fs: Use AT_FDCWD in Linux nodeRestoreSymlinkTimestamps
...
There's no need to open the containing directory. This is exactly what
syscall.UtimesNano does, except for the AT_SYMLINK_NOFOLLOW flag.
2024-10-19 11:29:35 +02:00
Michael Eischer
ca79cb92e3
fs/vss: test that vss functions actually read from snapshot
2024-10-18 21:43:46 +02:00
Michael Eischer
352605d9f0
fs: remove file.Name() from interface
...
The only user was archiver.fileSaver.
2024-10-18 21:43:23 +02:00