| | |
| | | "strings" |
| | | "time" |
| | | ) |
| | | |
| | | //初始化配置文件 |
| | | func InitYml(configPath string) (bool, error) { |
| | | v := viper.New() |
| | | v.SetConfigType("yml") |
| | |
| | | return true, nil |
| | | } |
| | | |
| | | //启动服务 |
| | | func StartServer(binPath string, ip string) bool { |
| | | resultMsg := CMDSC("sh " + binPath + "/elasticsearch -d") |
| | | if resultMsg == "运行失败" { |
| | |
| | | return bool |
| | | } |
| | | |
| | | //关闭服务 |
| | | func StopServer(binPath string) { |
| | | |
| | | } |
| | | |
| | | //更换节点角色 |
| | | func UpdateNodeRole(configPath string, role string) (bool, error) { |
| | | v := viper.New() |
| | | v.SetConfigType("yml") |
| | |
| | | return true,nil |
| | | } |
| | | |
| | | |
| | | //验证该节点是否被创建过 |
| | | func VerifyCreated(configPath string, ip string) (bool, error) { |
| | | v := viper.New() |
| | | v.SetConfigType("yml") |
| | |
| | | return false, nil |
| | | } |
| | | |
| | | //验证节点服务是否正常启动 |
| | | func VerifyNodeServer(ip string, port string) bool { |
| | | b := false |
| | | url := "http://" + ip + ":" + port |
| | |
| | | return b |
| | | } |
| | | |
| | | //验证节点角色 |
| | | func VerifyNodeRole(configPath string, ) (string, error) { |
| | | role := "slave" |
| | | v := viper.New() |
| | |
| | | return role, nil |
| | | } |
| | | |
| | | //更新组播列表 |
| | | func UpdateDiscoveryZenPingUnicastHosts(configPath string, oldIp string, newIp string) (bool, error) { |
| | | v := viper.New() |
| | | v.SetConfigType("yml") |
| | |
| | | return true, nil |
| | | } |
| | | |
| | | //添加组播成员 |
| | | func AddDiscoveryZenPingUnicastHosts(configPath string, ip string) []string { |
| | | v := viper.New() |
| | | v.SetConfigType("yml") |
| | |
| | | NodeName string `json:"nodeName"` |
| | | } |
| | | |
| | | //查询集群信息 |
| | | func GetClusterInfo(ip string, port string) ([]NodeInfo, error) { |
| | | url := "http://" + ip + ":" + port + "/_cat/nodes?v" |
| | | buf, err := HttpRC("GET", url, nil) |
| | |
| | | return inf, nil |
| | | } |
| | | |
| | | //排除即将退出集群的节点 |
| | | func ExcludeNode(ip string, port string) (bool, error) { |
| | | flag := false |
| | | url := "http://" + ip + ":" + port + "/_cluster/settings" |
| | |
| | | return flag, nil |
| | | } |
| | | |
| | | |
| | | func CMDSC(scriptStr string) string { |
| | | cmd := exec.Command("sh", "-c", scriptStr) |
| | | var out bytes.Buffer |