diff --git a/tools/functional-tester/etcd-agent/agent.go b/tools/functional-tester/etcd-agent/agent.go index faa067f45..6eede233e 100644 --- a/tools/functional-tester/etcd-agent/agent.go +++ b/tools/functional-tester/etcd-agent/agent.go @@ -206,12 +206,13 @@ func (a *Agent) status() client.Status { } func (a *Agent) dataDir() string { - datadir := filepath.Join(a.cmd.Path, "*.etcd") + datadir := filepath.Join(a.cfg.LogDir, "*.etcd") args := a.cmd.Args // only parse the simple case like "--data-dir /var/lib/etcd" for i, arg := range args { 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 } } @@ -231,14 +232,14 @@ func existDir(fpath string) bool { } 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) { - 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 { 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) { return err } diff --git a/tools/functional-tester/etcd-agent/main.go b/tools/functional-tester/etcd-agent/main.go index 004b959b3..901750d8d 100644 --- a/tools/functional-tester/etcd-agent/main.go +++ b/tools/functional-tester/etcd-agent/main.go @@ -27,7 +27,7 @@ var plog = capnslog.NewPackageLogger("github.com/coreos/etcd", "etcd-agent") func main() { 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") useRoot := flag.Bool("use-root", true, "use root permissions") failpointAddr := flag.String("failpoint-addr", ":2381", "interface for gofail's HTTP server")