Skip to content

Commit 7ccca08

Browse files
authored
Merge pull request #14799 from serathius/fix-client-fileutil-log
[3.5] client/pkg/fileutil: add missing logger to {Create,Touch}DirAll
2 parents b282163 + c919780 commit 7ccca08

File tree

12 files changed

+25
-26
lines changed

12 files changed

+25
-26
lines changed

client/pkg/fileutil/fileutil.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,12 @@ func IsDirWriteable(dir string) error {
4444

4545
// TouchDirAll is similar to os.MkdirAll. It creates directories with 0700 permission if any directory
4646
// does not exists. TouchDirAll also ensures the given directory is writable.
47-
func TouchDirAll(dir string) error {
47+
func TouchDirAll(lg *zap.Logger, dir string) error {
4848
// If path is already a directory, MkdirAll does nothing and returns nil, so,
4949
// first check if dir exist with an expected permission mode.
5050
if Exist(dir) {
5151
err := CheckDirPermission(dir, PrivateDirMode)
5252
if err != nil {
53-
lg, _ := zap.NewProduction()
54-
if lg == nil {
55-
lg = zap.NewExample()
56-
}
5753
lg.Warn("check file permission", zap.Error(err))
5854
}
5955
} else {
@@ -70,8 +66,8 @@ func TouchDirAll(dir string) error {
7066

7167
// CreateDirAll is similar to TouchDirAll but returns error
7268
// if the deepest directory was not empty.
73-
func CreateDirAll(dir string) error {
74-
err := TouchDirAll(dir)
69+
func CreateDirAll(lg *zap.Logger, dir string) error {
70+
err := TouchDirAll(lg, dir)
7571
if err == nil {
7672
var ns []string
7773
ns, err = ReadDir(dir)

client/pkg/fileutil/fileutil_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ func TestCreateDirAll(t *testing.T) {
6767
defer os.RemoveAll(tmpdir)
6868

6969
tmpdir2 := filepath.Join(tmpdir, "testdir")
70-
if err = CreateDirAll(tmpdir2); err != nil {
70+
if err = CreateDirAll(zaptest.NewLogger(t), tmpdir2); err != nil {
7171
t.Fatal(err)
7272
}
7373

7474
if err = ioutil.WriteFile(filepath.Join(tmpdir2, "text.txt"), []byte("test text"), PrivateFileMode); err != nil {
7575
t.Fatal(err)
7676
}
7777

78-
if err = CreateDirAll(tmpdir2); err == nil || !strings.Contains(err.Error(), "to be empty, got") {
78+
if err = CreateDirAll(zaptest.NewLogger(t), tmpdir2); err == nil || !strings.Contains(err.Error(), "to be empty, got") {
7979
t.Fatalf("unexpected error %v", err)
8080
}
8181
}
@@ -186,7 +186,7 @@ func TestDirPermission(t *testing.T) {
186186

187187
tmpdir2 := filepath.Join(tmpdir, "testpermission")
188188
// create a new dir with 0700
189-
if err = CreateDirAll(tmpdir2); err != nil {
189+
if err = CreateDirAll(zaptest.NewLogger(t), tmpdir2); err != nil {
190190
t.Fatal(err)
191191
}
192192
// check dir permission with mode different than created dir

client/pkg/transport/listener.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
205205
)
206206
return
207207
}
208-
err = fileutil.TouchDirAll(dirpath)
208+
err = fileutil.TouchDirAll(lg, dirpath)
209209
if err != nil {
210210
if info.Logger != nil {
211211
info.Logger.Warn(

etcdutl/etcdutl/backup_command.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func HandleBackup(withV3 bool, srcDir string, destDir string, srcWAL string, des
114114
destWAL = datadir.ToWalDir(destDir)
115115
}
116116

117-
if err := fileutil.CreateDirAll(destSnap); err != nil {
117+
if err := fileutil.CreateDirAll(lg, destSnap); err != nil {
118118
lg.Fatal("failed creating backup snapshot dir", zap.String("dest-snap", destSnap), zap.Error(err))
119119
}
120120

etcdutl/snapshot/v3_snapshot.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ func (s *v3Manager) copyAndVerifyDB() error {
322322
return err
323323
}
324324

325-
if err := fileutil.CreateDirAll(s.snapDir); err != nil {
325+
if err := fileutil.CreateDirAll(s.lg, s.snapDir); err != nil {
326326
return err
327327
}
328328

@@ -383,7 +383,7 @@ func (s *v3Manager) copyAndVerifyDB() error {
383383
//
384384
// TODO: This code ignores learners !!!
385385
func (s *v3Manager) saveWALAndSnap() (*raftpb.HardState, error) {
386-
if err := fileutil.CreateDirAll(s.walDir); err != nil {
386+
if err := fileutil.CreateDirAll(s.lg, s.walDir); err != nil {
387387
return nil, err
388388
}
389389

server/etcdmain/etcd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ func startProxy(cfg *config) error {
276276
}
277277

278278
cfg.ec.Dir = filepath.Join(cfg.ec.Dir, "proxy")
279-
err = fileutil.TouchDirAll(cfg.ec.Dir)
279+
err = fileutil.TouchDirAll(lg, cfg.ec.Dir)
280280
if err != nil {
281281
return err
282282
}

server/etcdserver/server.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,13 +349,13 @@ func NewServer(cfg config.ServerConfig) (srv *EtcdServer, err error) {
349349
)
350350
}
351351

352-
if terr := fileutil.TouchDirAll(cfg.DataDir); terr != nil {
352+
if terr := fileutil.TouchDirAll(cfg.Logger, cfg.DataDir); terr != nil {
353353
return nil, fmt.Errorf("cannot access data directory: %v", terr)
354354
}
355355

356356
haveWAL := wal.Exist(cfg.WALDir())
357357

358-
if err = fileutil.TouchDirAll(cfg.SnapDir()); err != nil {
358+
if err = fileutil.TouchDirAll(cfg.Logger, cfg.SnapDir()); err != nil {
359359
cfg.Logger.Fatal(
360360
"failed to create snapshot directory",
361361
zap.String("path", cfg.SnapDir()),
@@ -548,7 +548,7 @@ func NewServer(cfg config.ServerConfig) (srv *EtcdServer, err error) {
548548
return nil, fmt.Errorf("unsupported bootstrap config")
549549
}
550550

551-
if terr := fileutil.TouchDirAll(cfg.MemberDir()); terr != nil {
551+
if terr := fileutil.TouchDirAll(cfg.Logger, cfg.MemberDir()); terr != nil {
552552
return nil, fmt.Errorf("cannot access member directory: %v", terr)
553553
}
554554

server/wal/wal.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func Create(lg *zap.Logger, dirpath string, metadata []byte) (*WAL, error) {
115115
}
116116
defer os.RemoveAll(tmpdirpath)
117117

118-
if err := fileutil.CreateDirAll(tmpdirpath); err != nil {
118+
if err := fileutil.CreateDirAll(lg, tmpdirpath); err != nil {
119119
lg.Warn(
120120
"failed to create a temporary WAL directory",
121121
zap.String("tmp-dir-path", tmpdirpath),

tests/functional/agent/handler.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ func (srv *Server) handle_INITIAL_START_ETCD(req *rpcpb.Request) (*rpcpb.Respons
473473
}, nil
474474
}
475475

476-
err := fileutil.TouchDirAll(srv.Member.BaseDir)
476+
err := fileutil.TouchDirAll(srv.lg, srv.Member.BaseDir)
477477
if err != nil {
478478
return nil, err
479479
}
@@ -508,7 +508,7 @@ func (srv *Server) handle_INITIAL_START_ETCD(req *rpcpb.Request) (*rpcpb.Respons
508508
func (srv *Server) handle_RESTART_ETCD(req *rpcpb.Request) (*rpcpb.Response, error) {
509509
var err error
510510
if !fileutil.Exist(srv.Member.BaseDir) {
511-
err = fileutil.TouchDirAll(srv.Member.BaseDir)
511+
err = fileutil.TouchDirAll(srv.lg, srv.Member.BaseDir)
512512
if err != nil {
513513
return nil, err
514514
}
@@ -579,7 +579,7 @@ func (srv *Server) handle_SIGQUIT_ETCD_AND_REMOVE_DATA() (*rpcpb.Response, error
579579

580580
// create a new log file for next new member restart
581581
if !fileutil.Exist(srv.Member.BaseDir) {
582-
err = fileutil.TouchDirAll(srv.Member.BaseDir)
582+
err = fileutil.TouchDirAll(srv.lg, srv.Member.BaseDir)
583583
if err != nil {
584584
return nil, err
585585
}
@@ -651,6 +651,7 @@ func (srv *Server) handle_SIGQUIT_ETCD_AND_ARCHIVE_DATA() (*rpcpb.Response, erro
651651

652652
// TODO: support separate WAL directory
653653
if err = archive(
654+
srv.lg,
654655
srv.Member.BaseDir,
655656
srv.Member.Etcd.LogOutputs[0],
656657
srv.Member.Etcd.DataDir,

tests/functional/agent/utils.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,17 @@ import (
2525
"time"
2626

2727
"go.etcd.io/etcd/client/pkg/v3/fileutil"
28+
29+
"go.uber.org/zap"
2830
)
2931

3032
// TODO: support separate WAL directory
31-
func archive(baseDir, etcdLogPath, dataDir string) error {
33+
func archive(lg *zap.Logger, baseDir, etcdLogPath, dataDir string) error {
3234
dir := filepath.Join(baseDir, "etcd-failure-archive", time.Now().Format(time.RFC3339))
3335
if existDir(dir) {
3436
dir = filepath.Join(baseDir, "etcd-failure-archive", time.Now().Add(time.Second).Format(time.RFC3339))
3537
}
36-
if err := fileutil.TouchDirAll(dir); err != nil {
38+
if err := fileutil.TouchDirAll(lg, dir); err != nil {
3739
return err
3840
}
3941

0 commit comments

Comments
 (0)