Commit Graph

1790 Commits

Author SHA1 Message Date
Jarek Kowalski
7735fcc525 epoch: added epoch manager + unit tests (#1128) 2021-06-11 18:57:21 -07:00
Jarek Kowalski
46a6cc3f24 blob: minor improvements + test coverage (#1127)
* blob: additional utility functions and test coverage

* testing: made faulty storage less noisy
2021-06-10 18:35:00 -07:00
Robert Kroeger
93979818e6 Add a flag to not shallowrestore small files (#1126)
When doing a shallow restore, small files might take up less size than
storing the DirectoryEntry metadata. Add a minimum file size flag that
where files below that size will be written directly instead being
represented with shallow placeholders. This improves on #710.
2021-06-09 20:31:07 -07:00
Robert Kroeger
6fc3bf1af6 Support for shallow restore (#725) 2021-06-08 20:11:43 -07:00
Jarek Kowalski
b7c8463075 cli: 'kopia content verify' performance improvements (#1120)
* content: reduce cache lock scope and improve sharding for metadata cache

* cli: improved 'content verify' progress reporting

* cli: ensure we stop estimation goroutine before we return from content verify
2021-06-06 14:13:31 -07:00
Jarek Kowalski
c6accb858c Misc small and trivial changes (#1119)
* trivial: refactored indexBlobManager interface

* testlogging: added NewLogger()

* blob: added helper to extract blob IDs

* content: added packIndexBuilder.BuildStable()

This uncovered a bug where we were failing to return the name of
last pack object ID in an index file. Because of padding this was never
possible, but with stable indexes will. Fixed that.
2021-06-05 21:38:15 -07:00
Jarek Kowalski
53589d9efc content: fixed minor data race 2021-06-05 20:19:23 -07:00
Jarek Kowalski
6b646f7e9d Content manager cleanups (#1118)
* nit: dead code cleanup

* content: cleaned up committedContextIndex usage, removed unused code

* content: moved fetching index blobs into committedContentIndex
2021-06-05 13:34:20 -07:00
dependabot[bot]
f094b97628 build(deps-dev): bump concurrently from 6.1.0 to 6.2.0 in /app (#1108)
Bumps [concurrently](https://github.com/kimmobrunfeldt/concurrently) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/kimmobrunfeldt/concurrently/releases)
- [Commits](https://github.com/kimmobrunfeldt/concurrently/compare/v6.1.0...v6.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-05 10:41:22 -07:00
dependabot[bot]
c01e732397 build(deps): bump github.com/fatih/color from 1.11.0 to 1.12.0 (#1103)
Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/fatih/color/releases)
- [Commits](https://github.com/fatih/color/compare/v1.11.0...v1.12.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-05 10:41:06 -07:00
Jarek Kowalski
87f1f5281c cli: added tests for benchmark subcommands 2021-06-05 09:03:49 -07:00
Jarek Kowalski
d84c884321 Added content manager internal logging (#1116)
* logging: added logger wrappers for Broadcast and Prefix

* nit: moved max hash size to a named constant

* content: added internal logger

* content: replaced context-based logging with explicit Loggers

This will capture the logger.Logger associated with the context when
the repository is opened and will reuse it for all logs instead of
creating new logger for each log message.

The new logger will also write logs to the internal logger in addition
to writing to a log file/console.

* cli: allow decrypting all blobs whose names start with _

* maintenance: added logs cleanup

* cli: commands to view logs

* cli: log selected command on each write session
2021-06-05 08:48:43 -07:00
Jarek Kowalski
4b251bdaac mechanical: added ctx parameter to repo.{Direct}WriteSession callback (#1114) 2021-06-02 23:12:30 -07:00
Jarek Kowalski
f5eb12e8b7 content: introduced content.Crypter (#1112) 2021-06-01 20:12:34 -07:00
Jarek Kowalski
3a15f666f4 webdav: disable server-side compression (#1100)
Fixes #1098
2021-05-28 19:36:09 -07:00
Jarek Kowalski
6811f1fae1 cli: optimized 'kopia index recover' by leveraging partial read and parallelism (#1094) 2021-05-23 22:18:31 -07:00
Jarek Kowalski
e15a79474c azure: added support for using SAS Tokens instead of storage keys (#1093)
Fixes #1071
2021-05-22 12:43:55 -07:00
Jarek Kowalski
76490dc361 sftp: ensure key file and known hosts are absolute paths (#1092)
Fixes #1089
2021-05-22 11:17:22 -07:00
Jarek Kowalski
40510c043d Support for content-level compression (#1076)
* cli: added a flag to create repository with v2 index features

* content: plumb through compression.ID parameter to content.Manager.WriteContent()

* content: expose content.Manager.SupportsContentCompression

This allows object manager to decide whether to create compressed object
or let the content manager do it.

* object: if compression is requested and the repo supports it, pass compression ID to the content manager

* cli: show compression status in 'repository status'

* cli: output compression information in 'content list' and 'content stats'

* content: compression and decompression support

* content: unit tests for compression

* object: compression tests

* testing: added integration tests against v2 index

* testing: run all e2e tests with and without content-level compression

* htmlui: added UI for specifying index format on creation

* cli: additional tests for 'content ls' and 'content stats'

* applied pr suggestions
2021-05-22 05:35:27 -07:00
Jarek Kowalski
99b7a6e5d2 unrelated cleanups from PR #1076 (#1091)
* cli: fixed progress estimate for 'snapshot verify'

* content: prevent multiple close of shared content manager

* content: test cleanup
2021-05-21 23:59:14 -07:00
Steve Joachim
ba5eb74151 robustness: use testing.T for parallel robustness tests (#1051)
Use testing.T for parallel robustness tests
Elide t.Helper() to improve test output
2021-05-18 21:22:32 -07:00
Jarek Kowalski
57c3ba51ac testing: exclude additional test-only packages from code coverage 2021-05-18 20:27:51 -07:00
Julio Lopez
b5db8b09ca trivial: fix typo 2021-05-18 15:51:46 -07:00
Jarek Kowalski
2faed2bcf6 sftp: run tests as part of unit tests (#1086) 2021-05-18 09:22:26 -07:00
Jarek Kowalski
227b2f1bbc ci: change codecov thresholds (#1085) 2021-05-18 08:59:36 -07:00
Jarek Kowalski
5179ad2cd2 cli: test + misc improvements (#1083)
* cli: Added --max-examples-per-bucket flag to 'kopia snapshot estimate'

Added and cleaned up a bunch of unit tests.

Fixes #1054

* cli: misc tests to increase code coverage of the cli package

* ci: move code coverage run into separate GH job
2021-05-17 21:47:11 -07:00
dependabot[bot]
19ad8082e1 build(deps): bump google.golang.org/grpc from 1.37.0 to 1.37.1 (#1080)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.37.0 to 1.37.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.37.0...v1.37.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-17 21:13:03 -07:00
dependabot[bot]
488ab9406e build(deps): bump github.com/aws/aws-sdk-go from 1.38.36 to 1.38.41 (#1084)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.38.36 to 1.38.41.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.38.36...v1.38.41)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-17 21:12:43 -07:00
dependabot[bot]
5ed3a3ac00 build(deps): bump gocloud.dev from 0.22.0 to 0.23.0 (#1082)
Bumps [gocloud.dev](https://github.com/google/go-cloud) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/google/go-cloud/releases)
- [Commits](https://github.com/google/go-cloud/compare/v0.22.0...v0.23.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-17 19:43:56 -07:00
dependabot[bot]
a699cc4d81 build(deps): bump github.com/fatih/color from 1.10.0 to 1.11.0 (#1079)
Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/fatih/color/releases)
- [Commits](https://github.com/fatih/color/compare/v1.10.0...v1.11.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-17 19:43:16 -07:00
Jarek Kowalski
90a11d4649 NPM package upgrades (#1078)
* npm: updated all packages

* npm: upgraded packages in app/
2021-05-16 16:19:06 -07:00
dependabot[bot]
42be5cd419 build(deps): bump react-table from 7.6.3 to 7.7.0 in /htmlui (#1036)
Bumps [react-table](https://github.com/tannerlinsley/react-table) from 7.6.3 to 7.7.0.
- [Release notes](https://github.com/tannerlinsley/react-table/releases)
- [Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tannerlinsley/react-table/compare/v7.6.3...v7.7.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-16 15:23:31 -07:00
dependabot[bot]
d77149bc80 build(deps): bump github.com/klauspost/compress from 1.11.13 to 1.12.2 (#1025)
Bumps [github.com/klauspost/compress](https://github.com/klauspost/compress) from 1.11.13 to 1.12.2.
- [Release notes](https://github.com/klauspost/compress/releases)
- [Changelog](https://github.com/klauspost/compress/blob/master/.goreleaser.yml)
- [Commits](https://github.com/klauspost/compress/compare/v1.11.13...v1.12.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-16 15:17:53 -07:00
dependabot[bot]
56b5f6bb3b build(deps): bump @testing-library/jest-dom in /htmlui (#1038)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.11.10 to 5.12.0.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v5.11.10...v5.12.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-16 15:17:03 -07:00
dependabot[bot]
79251b86f2 build(deps): bump react-bootstrap from 1.4.3 to 1.6.0 in /app (#1064)
Bumps [react-bootstrap](https://github.com/react-bootstrap/react-bootstrap) from 1.4.3 to 1.6.0.
- [Release notes](https://github.com/react-bootstrap/react-bootstrap/releases)
- [Changelog](https://github.com/react-bootstrap/react-bootstrap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-bootstrap/react-bootstrap/compare/v1.4.3...v1.6.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-16 15:16:52 -07:00
dependabot[bot]
a59ee47ed9 build(deps): bump electron-updater from 4.3.5 to 4.3.8 in /app (#1041)
Bumps [electron-updater](https://github.com/electron-userland/electron-builder) from 4.3.5 to 4.3.8.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-16 15:16:41 -07:00
dependabot[bot]
cb9ad45365 build(deps-dev): bump electron from 11.2.1 to 12.0.7 in /app (#1063)
Bumps [electron](https://github.com/electron/electron) from 11.2.1 to 12.0.7.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/master/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v11.2.1...v12.0.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-16 15:15:23 -07:00
Jarek Kowalski
38d01d4c4d compression: added 'lz4' and 'deflate' methods (#1077)
* compression: add mapping from HeaderID to Name

* compression: minor refactoring

* compression: added 'lz4' based on 'github.com/pierrec/lz4'

* compression: added 'deflate' support

* cli: 'kopia benchmark compression' improvements
2021-05-16 14:42:56 -07:00
Jarek Kowalski
34257add9f testing: disable OneDrive test which is currently broken 2021-05-16 08:04:53 -07:00
Jarek Kowalski
c017019fdc rclone: fixed test cleanup (#1075) 2021-05-15 21:21:54 -07:00
Jarek Kowalski
aeca733153 testing: added onedrive backend for rclone tests (#1074) 2021-05-15 21:05:00 -07:00
Jarek Kowalski
862298f979 testing: provider test fixes (#1073) 2021-05-15 20:50:28 -07:00
Jarek Kowalski
30ca3e2e6c Upgraded linter to 1.40.1 (#1072)
* tools: upgraded linter to 1.40.1

* lint: fixed nolintlint vionlations

* lint: disabled tagliatele linter

* lint: fixed remaining warnings
2021-05-15 12:12:34 -07:00
Jarek Kowalski
fcd507a56d Refactored most of the CLI tests to run in-process as opposed to using sub-processes (#1059)
* cli: fixed remaining testability indirections for output and logging

* cli: added cli.RunSubcommand() which is used in testing to execute a subcommand in the same process

* tests: refactored most e2e tests to invoke kopia subcommands in-process

* Makefile: enable code coverage for cli/ and internal/

* testing: pass 'testing' tag to unit tests which uses much faster (insecure) password hashing scheme

* Makefile: push coverage from PRs again

* tests: disable buffer management to reduce memory usage on ARM

* cli: fixed misaligned atomic field on ARMHF

also temporarily fixed statup-time benign race condition when setting
default on the timeZone variable, which is the last global variable.
2021-05-11 22:26:28 -07:00
Jarek Kowalski
41931f21ce repo: refactored password persistence (#1065)
* introduced passwordpersist package which has password persistence
  strategies (keyring, file, none, multiple) with possibility of adding
  more in the future.
* moved all password persistence logic out of 'repo'
* removed global variable repo.EnableKeyRing
2021-05-11 21:53:36 -07:00
dependabot[bot]
b844ce6b50 build(deps): bump electron-log from 4.3.4 to 4.3.5 in /app (#1039)
Bumps [electron-log](https://github.com/megahertz/electron-log) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/megahertz/electron-log/releases)
- [Changelog](https://github.com/megahertz/electron-log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/megahertz/electron-log/compare/v4.3.4...v4.3.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-10 20:12:22 -07:00
dependabot[bot]
b5c3855c6b build(deps): bump github.com/aws/aws-sdk-go from 1.38.30 to 1.38.36 (#1061)
Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.38.30 to 1.38.36.
- [Release notes](https://github.com/aws/aws-sdk-go/releases)
- [Changelog](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go/compare/v1.38.30...v1.38.36)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-10 20:12:00 -07:00
dependabot[bot]
e5fecb1842 build(deps): bump google.golang.org/api from 0.45.0 to 0.46.0 (#1060)
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.45.0 to 0.46.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/master/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.45.0...v0.46.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-10 20:11:42 -07:00
dependabot[bot]
dec9d9a6d3 build(deps): bump github.com/pkg/profile from 1.5.0 to 1.6.0 (#1062)
Bumps [github.com/pkg/profile](https://github.com/pkg/profile) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/pkg/profile/releases)
- [Commits](https://github.com/pkg/profile/compare/v1.5.0...v1.6.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-10 20:11:31 -07:00
Jarek Kowalski
281a7fcc95 e2e test refactoring (#1058)
* tests: refactored test directory creation into separate package

* mechanical: refactored e2e test output parsing and error handling
2021-05-08 11:15:31 -07:00