diff --git a/internal/zk/delete.go b/internal/zk/delete.go index a59af44..e11f942 100644 --- a/internal/zk/delete.go +++ b/internal/zk/delete.go @@ -2,6 +2,7 @@ package zk import ( "fmt" + "path" "strings" "github.com/jam2in/arcusctl/internal" @@ -77,11 +78,19 @@ func groupServersByHost(servers []topology.ZKServer) map[string][]topology.ZKSer } func removeHostFiles(host string, servers []topology.ZKServer, topoPath string) error { - paths := []string{topoPath} + removePaths := []string{topoPath} for _, server := range servers { - paths = append(paths, fmt.Sprintf("%s/zk%d", server.Config.DataDir, server.MyID)) + removePaths = append(removePaths, nodeDataPaths(server)...) } - cmd := "rm -rf " + strings.Join(paths, " ") - return ssh.Run(host, cmd) + return ssh.Run(host, "rm -rf "+strings.Join(removePaths, " ")) +} + +func nodeDataPaths(server topology.ZKServer) []string { + nodeDirName := fmt.Sprintf("zk%d", server.MyID) + + return []string{ + path.Join(server.Config.DataDir, nodeDirName), + path.Join(server.Config.DataLogDir, nodeDirName), + } } diff --git a/internal/zk/install.go b/internal/zk/install.go index 9c918df..a38e3be 100644 --- a/internal/zk/install.go +++ b/internal/zk/install.go @@ -54,10 +54,15 @@ func installArchive(host string, installPath string, version string, localTarPat func configureServer(server topology.ZKServer, topo *topology.ZKTopology) error { host := server.Host() confDir := fmt.Sprintf("%s/conf_myid_%d", topo.Path, server.MyID) - dataDir := server.Config.DataDir - dataDirPath := fmt.Sprintf("%s/zk%d", dataDir, server.MyID) + dataDirPath := fmt.Sprintf("%s/zk%d", server.Config.DataDir, server.MyID) + dataLogDirPath := fmt.Sprintf("%s/zk%d", server.Config.DataLogDir, server.MyID) + mkdirCmd := fmt.Sprintf( + "mkdir -p %s %s %s", + confDir, + dataDirPath, + dataLogDirPath, + ) - mkdirCmd := fmt.Sprintf("mkdir -p %s %s", confDir, dataDirPath) if err := ssh.Run(host, mkdirCmd); err != nil { return fmt.Errorf("mkdir on %s: %w", host, err) }