From d2ffdeda9c9e9bf917259c6da292d1c34ca70e4e Mon Sep 17 00:00:00 2001 From: Ais8Ooz8 <47941654+Ais8Ooz8@users.noreply.github.com> Date: Sat, 30 Mar 2024 12:23:06 +0300 Subject: [PATCH] etcdctl: add etcdctl snapshot pipe command To improve the security of etcdctl. Added the ability to write snapshots to stdout without writing data to disk. Signed-off-by: Ais8Ooz8 <47941654+Ais8Ooz8@users.noreply.github.com> --- client/v3/snapshot/v3_snapshot.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/client/v3/snapshot/v3_snapshot.go b/client/v3/snapshot/v3_snapshot.go index 11b14a3c1..ac1d10466 100644 --- a/client/v3/snapshot/v3_snapshot.go +++ b/client/v3/snapshot/v3_snapshot.go @@ -97,7 +97,11 @@ func SaveWithVersion(ctx context.Context, lg *zap.Logger, cfg clientv3.Config, d defer os.RemoveAll(partPath) defer f.Close() - version, _ := WriteSnapshotWithVersion(ctx, lg, cfg, f) + var version string + version, err = WriteSnapshotWithVersion(ctx, lg, cfg, f) + if err != nil { + return version, err + } if err = os.Rename(partPath, dbPath); err != nil { return version, fmt.Errorf("could not rename %s to %s (%v)", partPath, dbPath, err) }