自动更新管控端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
1.0 KiB

package zookeepers
import (
"strings"
"github.com/samuel/go-zookeeper/zk"
"go-mysql-transfer/util/stringutil"
)
func CreateDirIfNecessary(dir string, conn *zk.Conn) error {
exist, _, err := conn.Exists(dir)
if err != nil {
return err
}
if !exist {
_, err := conn.Create(dir, nil, 0, zk.WorldACL(zk.PermAll))
if err != nil {
return err
}
}
return nil
}
func CreateDirWithDataIfNecessary(dir string,data []byte, conn *zk.Conn) error {
exist, _, err := conn.Exists(dir)
if err != nil {
return err
}
if !exist {
_, err := conn.Create(dir, data, 0, zk.WorldACL(zk.PermAll))
if err != nil {
return err
}
}
return nil
}
func DeleteDir(dir string, conn *zk.Conn) error {
_, stat, err := conn.Get(dir)
if err != nil {
return err
}
return conn.Delete(dir, stat.Version)
}
func JoinDir(args ...interface{}) string {
path := ""
for _, arg := range args {
if arg != "" {
p := stringutil.ToString(arg)
if strings.HasPrefix(p, "/") {
path = path + p
} else {
path = path + "/" + p
}
}
}
return path
}