Commit Graph

194 Commits

Author SHA1 Message Date
Christian Kemper 24b7514fe0 cleaner sharing of s3: and s3:// configuration 2016-02-14 09:45:58 -08:00
Christian Kemper 91dc14c9fc fix Hound warning 2016-02-14 09:27:00 -08:00
Christian Kemper 32c2cafa89 Simplify creation of the Config by moving it to a separate function. Simplify the parsing logic
by sharing the handling of s3: and s3://
2016-02-14 09:18:22 -08:00
Christian Kemper 74608531c7 strip off the trailing slash for the object prefix 2016-02-14 07:16:50 -08:00
Christian Kemper 48f85fbb09 replaced if-else chain with switch 2016-02-14 07:01:14 -08:00
Christian Kemper 535dfaf097 address first round of review comments 2016-02-14 06:40:15 -08:00
Christian Kemper 8f5ff379b7 Introduced a configurable object path prefix for s3 repositories.
Prepends the object path prefix to all s3 paths and allows to have multiple independent
restic backup repositories in a single s3 bucket.

Removed the hardcoded "restic" prefix from s3 paths.

Use "restic" as the default object path prefix for s3 if no other prefix gets specified.
This will retain backward compatibility with existing s3 repository configurations.

Simplified the parse flow to have a single point where we parse the bucket name and the prefix within the bucket.

Added tests for s3 object path prefix and the new default prefix to config_test and location_test.
2016-02-14 06:05:38 -08:00
Alexander Neumann e9a21c1dc6 backend.LoadAll: return nil on expected error
The current code returns io.ErrUnexpectedEOF, but it is the normal,
expected behaviour of the function LoadAll() to load until the item is
completely loaded. Therefore, the io.ErrUnexpectedEOF is not returned to
the caller.
2016-02-07 23:48:54 +01:00
Alexander Neumann a37ed45534 Add test for LoadAll with too large buffer
LoadAll() should not pass on io.ErrUnexpectedEOF, since the occurrence
of this error is normal.
2016-02-07 23:48:03 +01:00
Alexander Neumann 7d1775e000 Remove backend.ReadCloser 2016-01-27 22:35:18 +01:00
Alexander Neumann 322eca86bc mem backend: remove unused code 2016-01-27 21:33:48 +01:00
Alexander Neumann 2701eabe39 Remove ContinuousReader 2016-01-26 22:35:51 +01:00
Alexander Neumann c388101217 s3: Unexport structure 2016-01-26 22:19:44 +01:00
Alexander Neumann 1528d1ca83 sftp: Reduce duplicate code, add error check 2016-01-26 22:16:24 +01:00
Alexander Neumann 0bbad683c5 local: split out tempfile write function 2016-01-26 22:12:53 +01:00
Alexander Neumann 9ec435d863 local: remove duplicate code 2016-01-26 22:09:29 +01:00
Alexander Neumann 9b1c4b2dd6 local: Remove mutex and hash of open files 2016-01-26 22:08:20 +01:00
Alexander Neumann 7196971159 Remove unneeded HashingReader implementation 2016-01-26 22:00:11 +01:00
Alexander Neumann eb1669a061 Add a lot of comments 2016-01-26 21:56:13 +01:00
Alexander Neumann c34aa72538 Remove duplicate function str2id 2016-01-26 21:52:02 +01:00
Alexander Neumann da883d6196 Cleanups, move Hash() to id.go 2016-01-26 21:49:33 +01:00
Alexander Neumann b482df04ec Add more documentation 2016-01-26 21:49:22 +01:00
Alexander Neumann 5fcb5ae549 Reduce number of tests for Load() 2016-01-24 21:40:54 +01:00
Alexander Neumann a0d484113a backends: Do not sort strings
Closes #305
2016-01-24 21:32:45 +01:00
Alexander Neumann d9c87559b5 s3/local backend: Fix error for overwriting files 2016-01-24 21:13:24 +01:00
Alexander Neumann 1547d3b656 Remove Create() everywhere 2016-01-24 20:23:50 +01:00
Alexander Neumann 1a95e48389 Remove unneeded special readers 2016-01-24 18:58:15 +01:00
Alexander Neumann 35f9eae6c3 local backend: do not call Sync() on directory
This fails at least on Windows.
2016-01-24 18:01:00 +01:00
Alexander Neumann 4735a7f9b5 Improve random reader for tests 2016-01-24 17:47:45 +01:00
Alexander Neumann 54f8860612 backends: Add Save() 2016-01-24 16:59:38 +01:00
Alexander Neumann ed172c06e0 backends: Add Save() function 2016-01-24 01:15:35 +01:00
Alexander Neumann adbe9e2e1c backend: Remove GetReader 2016-01-24 01:00:27 +01:00
Alexander Neumann 9209dcfa26 Add LoadAll() 2016-01-23 23:41:55 +01:00
Alexander Neumann 919b40c6cf Add Stat() method to backend interface 2016-01-23 23:27:58 +01:00
Alexander Neumann 0b50f9e02c Move MemoryBackend to backend/mem 2016-01-23 19:50:11 +01:00
Alexander Neumann f05a32509e Add "Test" prefix to backend test functions 2016-01-23 19:12:02 +01:00
Alexander Neumann e4f2e4a203 Remove old s3 tests 2016-01-23 19:11:47 +01:00
Alexander Neumann 15c8b85a4b Add tests for s3 backend 2016-01-23 18:46:04 +01:00
Alexander Neumann c6db567e3f Add sftp tests 2016-01-23 18:30:02 +01:00
Alexander Neumann 4952f86682 Add test for to prevent double create 2016-01-23 18:07:15 +01:00
Alexander Neumann 16b7cc7655 Remove redundant local tests 2016-01-23 17:45:33 +01:00
Alexander Neumann 99fab793c0 Remove timestamp from generated tests 2016-01-23 17:43:49 +01:00
Alexander Neumann 9423767827 Update test generate script, add tests to membackend 2016-01-23 17:42:26 +01:00
Alexander Neumann e966df3fed Add Load() to MemBackend 2016-01-23 17:19:55 +01:00
Alexander Neumann 3aafa21887 Fix MockBackend.Load() 2016-01-23 17:19:47 +01:00
Alexander Neumann 9a490f9e01 Implement package-local tests 2016-01-23 17:08:03 +01:00
Alexander Neumann 0a24261afb Add Load() for all existing backends 2016-01-23 14:12:12 +01:00
Alexander Neumann 8b7bf8691d backend: Remove Get()
This is the first commit that removes the (redundant) Get() method of
the backend interface. Get(x, y) is equivalent to GetReader(x, y, 0, 0).
2016-01-23 13:13:05 +01:00
Alexander Neumann d3a6e2a991 Drop requirement from List()
Closes #305
2016-01-23 12:47:16 +01:00
Alexander Neumann 171cd0dfe1 Add backend.Handle, add comments 2016-01-23 12:46:20 +01:00