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 |   51 +++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/ClusterApi.go b/ClusterApi.go
index 81614f8..f4a5a5d 100644
--- a/ClusterApi.go
+++ b/ClusterApi.go
@@ -30,18 +30,25 @@
 }
 
 //鍚姩鏈嶅姟
-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
 }
 
 //鏇存崲鑺傜偣瑙掕壊
@@ -65,7 +72,7 @@
 	return true, nil
 }
 
-//楠岃瘉璇ヨ妭鐐规槸鍚﹁鍒涘缓杩�
+//楠岃瘉璇ヨ妭鐐规槸鍚﹁浣跨敤杩�
 func VerifyCreated(configPath string, ip string) (bool, error) {
 	v := viper.New()
 	v.SetConfigType("yml")
@@ -135,6 +142,22 @@
 	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()
@@ -164,18 +187,22 @@
 }
 
 //娣诲姞缁勬挱鎴愬憳
-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 {

--
Gitblit v1.8.0