etcd-agent: store failure_archive in log dir

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
This commit is contained in:
Gyu-Ho Lee
2017-05-11 16:22:54 -07:00
parent 7a65cb5847
commit 0bcab05465
2 changed files with 7 additions and 6 deletions

View File

@ -206,12 +206,13 @@ func (a *Agent) status() client.Status {
} }
func (a *Agent) dataDir() string { func (a *Agent) dataDir() string {
datadir := filepath.Join(a.cmd.Path, "*.etcd") datadir := filepath.Join(a.cfg.LogDir, "*.etcd")
args := a.cmd.Args args := a.cmd.Args
// only parse the simple case like "--data-dir /var/lib/etcd" // only parse the simple case like "--data-dir /var/lib/etcd"
for i, arg := range args { for i, arg := range args {
if arg == "--data-dir" { if arg == "--data-dir" {
datadir = args[i+1] // just take the directory name from request
datadir = filepath.Join(a.cfg.LogDir, filepath.Base(args[i+1]))
break break
} }
} }
@ -231,14 +232,14 @@ func existDir(fpath string) bool {
} }
func archiveLogAndDataDir(logDir string, datadir string) error { func archiveLogAndDataDir(logDir string, datadir string) error {
dir := filepath.Join("failure_archive", fmt.Sprint(time.Now().Format(time.RFC3339))) dir := filepath.Join(logDir, "failure_archive", fmt.Sprint(time.Now().Format(time.RFC3339)))
if existDir(dir) { if existDir(dir) {
dir = filepath.Join("failure_archive", fmt.Sprint(time.Now().Add(time.Second).Format(time.RFC3339))) dir = filepath.Join(logDir, "failure_archive", fmt.Sprint(time.Now().Add(time.Second).Format(time.RFC3339)))
} }
if err := fileutil.TouchDirAll(dir); err != nil { if err := fileutil.TouchDirAll(dir); err != nil {
return err return err
} }
if err := os.Rename(logDir, filepath.Join(dir, filepath.Base(logDir))); err != nil { if err := os.Rename(filepath.Join(logDir, "etcd.log"), filepath.Join(dir, "etcd.log")); err != nil {
if !os.IsNotExist(err) { if !os.IsNotExist(err) {
return err return err
} }

View File

@ -27,7 +27,7 @@ var plog = capnslog.NewPackageLogger("github.com/coreos/etcd", "etcd-agent")
func main() { func main() {
etcdPath := flag.String("etcd-path", filepath.Join(os.Getenv("GOPATH"), "bin/etcd"), "the path to etcd binary") etcdPath := flag.String("etcd-path", filepath.Join(os.Getenv("GOPATH"), "bin/etcd"), "the path to etcd binary")
etcdLogDir := flag.String("etcd-log-dir", "etcd-log", "directory to store etcd logs") etcdLogDir := flag.String("etcd-log-dir", "etcd-log", "directory to store etcd logs, data directories, failure archive")
port := flag.String("port", ":9027", "port to serve agent server") port := flag.String("port", ":9027", "port to serve agent server")
useRoot := flag.Bool("use-root", true, "use root permissions") useRoot := flag.Bool("use-root", true, "use root permissions")
failpointAddr := flag.String("failpoint-addr", ":2381", "interface for gofail's HTTP server") failpointAddr := flag.String("failpoint-addr", ":2381", "interface for gofail's HTTP server")