Skip to content

Commit

Permalink
cmd/dump: add keep-secret-key option
Browse files Browse the repository at this point in the history
  • Loading branch information
SandyXSD committed Sep 8, 2022
1 parent 4963abd commit af4f73b
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 13 deletions.
6 changes: 5 additions & 1 deletion cmd/dump.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ Details: https://juicefs.com/docs/community/metadata_dump_load`,
Name: "subdir",
Usage: "only dump a sub-directory",
},
&cli.BoolFlag{
Name: "keep-secret-key",
Usage: "keep secret keys intact (WARNING: Be careful as they may be leaked)",
},
},
}
}
Expand All @@ -70,7 +74,7 @@ func dump(ctx *cli.Context) error {
if _, err := m.Load(true); err != nil {
return err
}
if err := m.DumpMeta(fp, 1); err != nil {
if err := m.DumpMeta(fp, 1, ctx.Bool("keep-secret-key")); err != nil {
return err
}
logger.Infof("Dump metadata into %s succeed", ctx.Args().Get(1))
Expand Down
2 changes: 1 addition & 1 deletion pkg/meta/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ type Meta interface {
OnMsg(mtype uint32, cb MsgCallback)

// Dump the tree under root, which may be modified by checkRoot
DumpMeta(w io.Writer, root Ino) error
DumpMeta(w io.Writer, root Ino, keepSecret bool) error
LoadMeta(r io.Reader) error

// getBase return the base engine.
Expand Down
2 changes: 1 addition & 1 deletion pkg/meta/load_dump_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ func testDump(t *testing.T, m Meta, root Ino, expect, result string) {
if _, err = m.Load(true); err != nil {
t.Fatalf("load setting: %s", err)
}
if err = m.DumpMeta(fp, root); err != nil {
if err = m.DumpMeta(fp, root, false); err != nil {
t.Fatalf("dump meta: %s", err)
}
cmd := exec.Command("diff", expect, result)
Expand Down
6 changes: 3 additions & 3 deletions pkg/meta/redis.go
Original file line number Diff line number Diff line change
Expand Up @@ -3178,7 +3178,7 @@ func (m *redisMeta) dumpDir(inode Ino, tree *DumpedEntry, bw *bufio.Writer, dept
return nil
}

func (m *redisMeta) DumpMeta(w io.Writer, root Ino) (err error) {
func (m *redisMeta) DumpMeta(w io.Writer, root Ino, keepSecret bool) (err error) {
defer func() {
if p := recover(); p != nil {
if e, ok := p.(error); ok {
Expand Down Expand Up @@ -3253,11 +3253,11 @@ func (m *redisMeta) DumpMeta(w io.Writer, root Ino) (err error) {
Sustained: sessions,
DelFiles: dels,
}
if dm.Setting.SecretKey != "" {
if !keepSecret && dm.Setting.SecretKey != "" {
dm.Setting.SecretKey = "removed"
logger.Warnf("Secret key is removed for the sake of safety")
}
if dm.Setting.SessionToken != "" {
if !keepSecret && dm.Setting.SessionToken != "" {
dm.Setting.SessionToken = "removed"
logger.Warnf("Session token is removed for the sake of safety")
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/meta/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -2945,7 +2945,7 @@ func (m *dbMeta) makeSnap(ses *xorm.Session, bar *utils.Bar) error {
return nil
}

func (m *dbMeta) DumpMeta(w io.Writer, root Ino) (err error) {
func (m *dbMeta) DumpMeta(w io.Writer, root Ino, keepSecret bool) (err error) {
defer func() {
if p := recover(); p != nil {
if e, ok := p.(error); ok {
Expand Down Expand Up @@ -3030,11 +3030,11 @@ func (m *dbMeta) DumpMeta(w io.Writer, root Ino) (err error) {
Sustained: sessions,
DelFiles: dels,
}
if dm.Setting.SecretKey != "" {
if !keepSecret && dm.Setting.SecretKey != "" {
dm.Setting.SecretKey = "removed"
logger.Warnf("Secret key is removed for the sake of safety")
}
if dm.Setting.SessionToken != "" {
if !keepSecret && dm.Setting.SessionToken != "" {
dm.Setting.SessionToken = "removed"
logger.Warnf("Session token is removed for the sake of safety")
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/meta/tkv.go
Original file line number Diff line number Diff line change
Expand Up @@ -2416,7 +2416,7 @@ func (m *kvMeta) dumpDir(inode Ino, tree *DumpedEntry, bw *bufio.Writer, depth i
return nil
}

func (m *kvMeta) DumpMeta(w io.Writer, root Ino) (err error) {
func (m *kvMeta) DumpMeta(w io.Writer, root Ino, keepSecret bool) (err error) {
defer func() {
if p := recover(); p != nil {
debug.PrintStack()
Expand Down Expand Up @@ -2587,11 +2587,11 @@ func (m *kvMeta) DumpMeta(w io.Writer, root Ino) (err error) {
Sustained: sessions,
DelFiles: dels,
}
if dm.Setting.SecretKey != "" {
if !keepSecret && dm.Setting.SecretKey != "" {
dm.Setting.SecretKey = "removed"
logger.Warnf("Secret key is removed for the sake of safety")
}
if dm.Setting.SessionToken != "" {
if !keepSecret && dm.Setting.SessionToken != "" {
dm.Setting.SessionToken = "removed"
logger.Warnf("Session token is removed for the sake of safety")
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/vfs/backup.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func backup(m meta.Meta, blob object.ObjectStorage, now time.Time) error {
defer os.Remove(fpath)
defer fp.Close()
zw := gzip.NewWriter(fp)
err = m.DumpMeta(zw, 0) // force dump the whole tree
err = m.DumpMeta(zw, 0, false) // force dump the whole tree
_ = zw.Close()
if err != nil {
return err
Expand Down

0 comments on commit af4f73b

Please sign in to comment.