Skip to content

Commit fd06180

Browse files
committed
backup: add storage interface and fs/s3 impl
Implement local filesystem and S3-compatible backends. Closes TNTP-8210
1 parent 7b88980 commit fd06180

13 files changed

Lines changed: 1443 additions & 46 deletions

File tree

.cspell_project-words.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ demoter
2121
disbalance
2222
distfile*
2323
drwxr
24+
dxflrs
2425
equalf
2526
errf
2627
etcd*
@@ -30,6 +31,7 @@ falsef
3031
finalizer*
3132
flightrec
3233
getfixturevalue
34+
GKTTBACKUPTEST
3335
golangci
3436
heywoodlh
3537
iconfig

go.mod

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ require (
1717
github.com/manifoldco/promptui v0.9.0
1818
github.com/mattn/go-isatty v0.0.20
1919
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
20+
github.com/minio/minio-go/v7 v7.0.95
2021
github.com/mitchellh/mapstructure v1.5.0
2122
github.com/moby/go-archive v0.2.0
22-
github.com/moby/moby/api v1.54.0
23-
github.com/moby/moby/client v0.3.0
23+
github.com/moby/moby/api v1.54.2
24+
github.com/moby/moby/client v0.4.0
2425
github.com/moby/term v0.5.2
2526
github.com/nxadm/tail v1.4.11
2627
github.com/otiai10/copy v1.14.1
@@ -36,22 +37,24 @@ require (
3637
github.com/tarantool/tt/lib/connect v0.0.0-0
3738
github.com/tarantool/tt/lib/dial v0.0.0-0
3839
github.com/tarantool/tt/lib/integrity v0.0.0
40+
github.com/testcontainers/testcontainers-go v0.43.0
3941
github.com/vmihailenco/msgpack/v5 v5.4.1
4042
github.com/yuin/gopher-lua v1.1.1
4143
go.etcd.io/etcd/client/pkg/v3 v3.6.8
4244
go.etcd.io/etcd/client/v3 v3.6.8
4345
go.etcd.io/etcd/tests/v3 v3.6.8
44-
golang.org/x/crypto v0.49.0
46+
golang.org/x/crypto v0.51.0
4547
golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa
46-
golang.org/x/sys v0.42.0
47-
golang.org/x/term v0.41.0
48+
golang.org/x/sys v0.45.0
49+
golang.org/x/term v0.43.0
4850
google.golang.org/grpc v1.79.3
4951
google.golang.org/protobuf v1.36.11
5052
gopkg.in/yaml.v2 v2.4.0
5153
gopkg.in/yaml.v3 v3.0.1
5254
)
5355

5456
require (
57+
dario.cat/mergo v1.0.2 // indirect
5558
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
5659
github.com/FZambia/tarantool v0.2.1 // indirect
5760
github.com/Microsoft/go-winio v0.6.2 // indirect
@@ -61,6 +64,7 @@ require (
6164
github.com/beorn7/perks v1.0.1 // indirect
6265
github.com/bgentry/speakeasy v0.2.0 // indirect
6366
github.com/c-bata/go-prompt v0.2.5 // indirect
67+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
6468
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
6569
github.com/cespare/xxhash/v2 v2.3.0 // indirect
6670
github.com/cheggaaa/pb/v3 v3.1.6 // indirect
@@ -69,20 +73,25 @@ require (
6973
github.com/containerd/errdefs v1.0.0 // indirect
7074
github.com/containerd/errdefs/pkg v0.3.0 // indirect
7175
github.com/containerd/log v0.1.0 // indirect
76+
github.com/containerd/platforms v0.2.1 // indirect
7277
github.com/coreos/go-semver v0.3.1 // indirect
7378
github.com/coreos/go-systemd/v22 v22.7.0 // indirect
79+
github.com/cpuguy83/dockercfg v0.3.2 // indirect
7480
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
7581
github.com/distribution/reference v0.6.0 // indirect
7682
github.com/docker/docker v28.5.2+incompatible // indirect
7783
github.com/docker/go-connections v0.6.0 // indirect
7884
github.com/docker/go-units v0.5.0 // indirect
7985
github.com/dustin/go-humanize v1.0.1 // indirect
86+
github.com/ebitengine/purego v0.10.0 // indirect
8087
github.com/fatih/structs v1.1.0 // indirect
8188
github.com/felixge/httpsnoop v1.0.4 // indirect
8289
github.com/fsnotify/fsnotify v1.9.0 // indirect
90+
github.com/go-ini/ini v1.67.0 // indirect
8391
github.com/go-logr/logr v1.4.3 // indirect
8492
github.com/go-logr/stdr v1.2.2 // indirect
85-
github.com/go-ole/go-ole v1.2.5 // indirect
93+
github.com/go-ole/go-ole v1.2.6 // indirect
94+
github.com/goccy/go-json v0.10.5 // indirect
8695
github.com/gogo/protobuf v1.3.2 // indirect
8796
github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
8897
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
@@ -97,13 +106,18 @@ require (
97106
github.com/hpcloud/tail v1.0.0 // indirect
98107
github.com/inconshreveable/mousetrap v1.1.0 // indirect
99108
github.com/jonboulle/clockwork v0.5.0 // indirect
100-
github.com/klauspost/compress v1.18.4 // indirect
109+
github.com/klauspost/compress v1.18.5 // indirect
110+
github.com/klauspost/cpuid/v2 v2.2.11 // indirect
111+
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
112+
github.com/magiconair/properties v1.8.10 // indirect
101113
github.com/mattn/go-colorable v0.1.14 // indirect
102114
github.com/mattn/go-pointer v0.0.1 // indirect
103115
github.com/mattn/go-runewidth v0.0.20 // indirect
104116
github.com/mattn/go-tty v0.0.7 // indirect
117+
github.com/minio/crc64nvme v1.1.1 // indirect
118+
github.com/minio/md5-simd v1.1.2 // indirect
105119
github.com/moby/docker-image-spec v1.3.1 // indirect
106-
github.com/moby/patternmatcher v0.6.0 // indirect
120+
github.com/moby/patternmatcher v0.6.1 // indirect
107121
github.com/moby/sys/atomicwriter v0.1.0 // indirect
108122
github.com/moby/sys/sequential v0.6.0 // indirect
109123
github.com/moby/sys/user v0.4.0 // indirect
@@ -113,14 +127,18 @@ require (
113127
github.com/opencontainers/go-digest v1.0.0 // indirect
114128
github.com/opencontainers/image-spec v1.1.1 // indirect
115129
github.com/otiai10/mint v1.6.3 // indirect
130+
github.com/philhofer/fwd v1.2.0 // indirect
116131
github.com/pkg/errors v0.9.1 // indirect
117132
github.com/pkg/term v1.2.0-beta.2 // indirect
133+
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
118134
github.com/prometheus/client_golang v1.23.2 // indirect
119135
github.com/prometheus/client_model v0.6.2 // indirect
120136
github.com/prometheus/common v0.67.5 // indirect
121137
github.com/prometheus/procfs v0.19.2 // indirect
122138
github.com/robfig/config v0.0.0-20141207224736-0f78529c8c7e // indirect
139+
github.com/rs/xid v1.6.0 // indirect
123140
github.com/shirou/gopsutil v3.21.2+incompatible // indirect
141+
github.com/shirou/gopsutil/v4 v4.26.5 // indirect
124142
github.com/shopspring/decimal v1.4.0 // indirect
125143
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
126144
github.com/sirupsen/logrus v1.9.4 // indirect
@@ -131,11 +149,13 @@ require (
131149
github.com/tarantool/go-openssl v1.2.2 // indirect
132150
github.com/tarantool/go-option v1.0.0 // indirect
133151
github.com/tarantool/go-tlsdialer v1.0.2 // indirect
134-
github.com/tklauser/go-sysconf v0.3.4 // indirect
135-
github.com/tklauser/numcpus v0.2.1 // indirect
152+
github.com/tinylib/msgp v1.6.1 // indirect
153+
github.com/tklauser/go-sysconf v0.3.16 // indirect
154+
github.com/tklauser/numcpus v0.11.0 // indirect
136155
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 // indirect
137156
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
138157
github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 // indirect
158+
github.com/yusufpapurcu/wmi v1.2.4 // indirect
139159
go.etcd.io/bbolt v1.4.3 // indirect
140160
go.etcd.io/etcd/api/v3 v3.6.8 // indirect
141161
go.etcd.io/etcd/etcdctl/v3 v3.6.8 // indirect
@@ -157,9 +177,9 @@ require (
157177
go.uber.org/multierr v1.11.0 // indirect
158178
go.uber.org/zap v1.27.1 // indirect
159179
go.yaml.in/yaml/v2 v2.4.3 // indirect
160-
golang.org/x/net v0.52.0 // indirect
180+
golang.org/x/net v0.53.0 // indirect
161181
golang.org/x/sync v0.20.0 // indirect
162-
golang.org/x/text v0.35.0 // indirect
182+
golang.org/x/text v0.37.0 // indirect
163183
golang.org/x/time v0.14.0 // indirect
164184
golang.org/x/tools/godoc v0.1.0-deprecated // indirect
165185
gonum.org/v1/gonum v0.17.0 // indirect

0 commit comments

Comments
 (0)