functional/agent: handle "SIGQUIT_ETCD_AND_REMOVE_DATA"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>release-3.4
parent
7e56c3e737
commit
86deeab77a
|
@ -92,7 +92,7 @@ func (srv *Server) handle_INITIAL_START_ETCD(req *rpcpb.Request) (*rpcpb.Respons
|
||||||
}
|
}
|
||||||
srv.lg.Info("created base directory", zap.String("path", srv.Member.BaseDir))
|
srv.lg.Info("created base directory", zap.String("path", srv.Member.BaseDir))
|
||||||
|
|
||||||
if err = srv.saveEtcdLogFile(); err != nil {
|
if err = srv.createEtcdLogFile(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ func (srv *Server) stopProxy() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (srv *Server) saveEtcdLogFile() error {
|
func (srv *Server) createEtcdLogFile() error {
|
||||||
var err error
|
var err error
|
||||||
srv.etcdLogFile, err = os.Create(srv.Member.EtcdLogPath)
|
srv.etcdLogFile, err = os.Create(srv.Member.EtcdLogPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -469,11 +469,32 @@ func (srv *Server) handle_SIGQUIT_ETCD_AND_REMOVE_DATA() (*rpcpb.Response, error
|
||||||
}
|
}
|
||||||
srv.lg.Info("killed etcd", zap.String("signal", syscall.SIGQUIT.String()))
|
srv.lg.Info("killed etcd", zap.String("signal", syscall.SIGQUIT.String()))
|
||||||
|
|
||||||
err = os.RemoveAll(srv.Member.BaseDir)
|
srv.etcdLogFile.Sync()
|
||||||
if err != nil {
|
srv.etcdLogFile.Close()
|
||||||
|
|
||||||
|
// for debugging purposes, rename instead of removing
|
||||||
|
if err = os.RemoveAll(srv.Member.BaseDir + ".backup"); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err = os.Rename(srv.Member.BaseDir, srv.Member.BaseDir+".backup"); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
srv.lg.Info(
|
||||||
|
"renamed",
|
||||||
|
zap.String("base-dir", srv.Member.BaseDir),
|
||||||
|
zap.String("new-dir", srv.Member.BaseDir+".backup"),
|
||||||
|
)
|
||||||
|
|
||||||
|
// create a new log file for next new member restart
|
||||||
|
if !fileutil.Exist(srv.Member.BaseDir) {
|
||||||
|
err = fileutil.TouchDirAll(srv.Member.BaseDir)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err = srv.createEtcdLogFile(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
srv.lg.Info("removed base directory", zap.String("dir", srv.Member.BaseDir))
|
|
||||||
|
|
||||||
return &rpcpb.Response{
|
return &rpcpb.Response{
|
||||||
Success: true,
|
Success: true,
|
||||||
|
@ -504,7 +525,7 @@ func (srv *Server) handle_SIGQUIT_ETCD_AND_ARCHIVE_DATA() (*rpcpb.Response, erro
|
||||||
}
|
}
|
||||||
srv.lg.Info("archived data", zap.String("base-dir", srv.Member.BaseDir))
|
srv.lg.Info("archived data", zap.String("base-dir", srv.Member.BaseDir))
|
||||||
|
|
||||||
if err = srv.saveEtcdLogFile(); err != nil {
|
if err = srv.createEtcdLogFile(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -530,6 +551,9 @@ func (srv *Server) handle_SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT() (*rpcpb.
|
||||||
}
|
}
|
||||||
srv.lg.Info("killed etcd", zap.String("signal", syscall.SIGQUIT.String()))
|
srv.lg.Info("killed etcd", zap.String("signal", syscall.SIGQUIT.String()))
|
||||||
|
|
||||||
|
srv.etcdLogFile.Sync()
|
||||||
|
srv.etcdLogFile.Close()
|
||||||
|
|
||||||
err = os.RemoveAll(srv.Member.BaseDir)
|
err = os.RemoveAll(srv.Member.BaseDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
Loading…
Reference in New Issue