From 832b4c1694464fa153f1157f8cc1485edcd70f90 Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期一, 19 十月 2020 16:31:49 +0800 Subject: [PATCH] add pid server --- ClusterApi.go | 74 ++++++++++++++++++++++++++++++------ 1 files changed, 61 insertions(+), 13 deletions(-) diff --git a/ClusterApi.go b/ClusterApi.go index 6c3c8dc..f4a5a5d 100644 --- a/ClusterApi.go +++ b/ClusterApi.go @@ -13,6 +13,7 @@ "time" ) +//鍒濆鍖栭厤缃枃浠� func InitYml(configPath string) (bool, error) { v := viper.New() v.SetConfigType("yml") @@ -28,19 +29,29 @@ return true, nil } -func StartServer(binPath string, ip string) bool { - resultMsg := CMDSC("sh " + binPath + "/elasticsearch -d") +//鍚姩鏈嶅姟 +func StartServer(binPath string, ip string, port string) bool { + resultMsg := CMDSC("sh " + binPath + "/es_start.sh") if resultMsg == "杩愯澶辫触" { return false } - bool := VerifyNodeServer(ip, "9200") - return bool + b := VerifyNodeServer(ip, port) + return b } -func StopServer(binPath string) { - +//鍏抽棴鏈嶅姟 +func StopServer(binPath string, ip string, port string) bool { + b := VerifyShortNodeServer(ip, port) + if b == true { + resultMsg := CMDSC("sh " + binPath + "/es_stop.sh") + if resultMsg == "杩愯澶辫触" { + return false + } + } + return b } +//鏇存崲鑺傜偣瑙掕壊 func UpdateNodeRole(configPath string, role string) (bool, error) { v := viper.New() v.SetConfigType("yml") @@ -58,9 +69,10 @@ if err := v.WriteConfig(); err != nil { return false, err } - return true,nil + return true, nil } +//楠岃瘉璇ヨ妭鐐规槸鍚﹁浣跨敤杩� func VerifyCreated(configPath string, ip string) (bool, error) { v := viper.New() v.SetConfigType("yml") @@ -68,7 +80,7 @@ v.AddConfigPath(configPath) err := v.ReadInConfig() if err != nil { - return false, err + return true, err } hosts := v.GetStringSlice("discovery.zen.ping.unicast.hosts") for _, pick := range hosts { @@ -82,6 +94,7 @@ return false, nil } +//楠岃瘉鑺傜偣鏈嶅姟鏄惁姝e父鍚姩 func VerifyNodeServer(ip string, port string) bool { b := false url := "http://" + ip + ":" + port @@ -101,6 +114,17 @@ return b } +//楠岃瘉鑺傜偣鏈嶅姟鏄惁姝e父鍚姩(鐭獙璇�) +func VerifyShortNodeServer(ip string, port string) bool { + url := "http://" + ip + ":" + port + _, err := HttpRC("GET", url, nil) + if err != nil { + return false + } + return true +} + +//楠岃瘉鑺傜偣瑙掕壊 func VerifyNodeRole(configPath string, ) (string, error) { role := "slave" v := viper.New() @@ -118,6 +142,23 @@ return role, nil } +func SetDiscoveryZenPingUnicastHosts(configPath string, hosts []string) (bool, error) { + v := viper.New() + v.SetConfigType("yml") + v.SetConfigName("elasticsearch") + v.AddConfigPath(configPath) + err := v.ReadInConfig() + if err != nil { + return false, err + } + v.Set("discovery.zen.ping.unicast.hosts", hosts) + if err := v.WriteConfig(); err != nil { + return false, err + } + return true, nil +} + +//鏇存柊缁勬挱鍒楄〃 func UpdateDiscoveryZenPingUnicastHosts(configPath string, oldIp string, newIp string) (bool, error) { v := viper.New() v.SetConfigType("yml") @@ -145,18 +186,23 @@ return true, nil } -func AddDiscoveryZenPingUnicastHosts(configPath string, ip string) []string { +//娣诲姞缁勬挱鎴愬憳 +func AddDiscoveryZenPingUnicastHosts(configPath string, ip string) (bool, error) { v := viper.New() v.SetConfigType("yml") v.SetConfigName("elasticsearch") v.AddConfigPath(configPath) - err := v.ReadInConfig() - if err != nil { - + errR := v.ReadInConfig() + if errR != nil { + return false, errR } hosts := v.GetStringSlice("discovery.zen.ping.unicast.hosts") hosts = append(hosts, ip) - return hosts + v.Set("discovery.zen.ping.unicast.hosts", hosts) + if errW := v.WriteConfig(); errW != nil { + return false, errW + } + return true, nil } type NodeInfo struct { @@ -166,6 +212,7 @@ 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) @@ -198,6 +245,7 @@ return inf, nil } +//鎺掗櫎鍗冲皢閫�鍑洪泦缇ょ殑鑺傜偣 func ExcludeNode(ip string, port string) (bool, error) { flag := false url := "http://" + ip + ":" + port + "/_cluster/settings" -- Gitblit v1.8.0