From 68ed73b2966171ef16a0b6623a9eb9c2d0968ea5 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期四, 16 四月 2020 14:19:31 +0800
Subject: [PATCH] go wg  test

---
 controllers/swfsControllers.go |   58 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/controllers/swfsControllers.go b/controllers/swfsControllers.go
index fd5ebca..98f2f49 100644
--- a/controllers/swfsControllers.go
+++ b/controllers/swfsControllers.go
@@ -57,7 +57,7 @@
 	c.BindJSON(&body)
 	role := body.Role
 	if role == "master" {
-		AsMaster()
+		AsMaster(role)
 		util.ResponseFormat(c, code.AddSuccess, "鍔犲叆鑺傜偣鎴愬姛")
 		return
 	} else if role == "volume" {
@@ -70,7 +70,7 @@
 			return
 		}
 	} else if role == "master+volume" {
-		AsMaVo()
+		AsMaVo(role)
 		util.ResponseFormat(c, code.AddSuccess, "鍔犲叆鑺傜偣鎴愬姛")
 	} else {
 		util.ResponseFormat(c, code.RequestParamError, "閫夋嫨鑺傜偣绫诲瀷閿欒")
@@ -79,13 +79,13 @@
 
 }
 
-func AsMaVo() {
-	AsMaster()
+func AsMaVo(role string) {
+	AsMaster(role)
 	ReplaceLineContentBySearch(Option+StartScriptAsMaVo, Option, config.Server.ScriptPath, StartServerScript)
 }
 
 func (sc *SeaweedfsController) RoleOfVolumeToMasterController(c *gin.Context) {
-	AsMaster()
+	AsMaster("master")
 	ReplaceLineContentBySearch(Option+StartScriptAsMaVo, Option, config.Server.ScriptPath, StartServerScript)
 }
 
@@ -118,23 +118,34 @@
 
 //鏇存柊鎵�鏈夎妭鐐圭殑鑴氭湰鍙傛暟
 func UpdateAllNodesScriptArgument(peersIp []string) {
+	fmt.Println("寮�濮嬫洿鏂版湰鍦伴厤缃枃浠�")
 	for _, ip := range peersIp {
 		fmt.Println("ip: ", ip)
 		url := "http://" + ip + ":7020/node/api-v/swfs/updateSWFSService"
 		fmt.Println("url", url)
-		http.Get(url)
-		fmt.Println("璇锋眰瀹屾瘯")
+		resp, _ := http.Get(url)
+		fmt.Println("鏇存柊杩斿洖鐘舵�侊細", resp.StatusCode)
+		if resp.StatusCode == 200 {
+			fmt.Println("璇锋眰瀹屾瘯", resp.StatusCode)
+		}
 	}
 }
 
-//璇锋眰浣滀负涓昏妭鐐规搷浣滄祦绋�
-func RequestMasterNodesOperation(nowPeers []interface{}) {
+//璇锋眰浣滀负褰撳墠瑙掕壊鑺傜偣鎿嶄綔娴佺▼
+func RequestNodesOperation(nowPeers []interface{}, role string) {
 	peersIp := make([]string, 0)
 	for _, val := range nowPeers {
 		peersIp = append(peersIp, strings.Split(val.(string), ":")[0])
 	}
 	coreBaseUnit, _ := strconv.Atoi(config.Server.CoreBaseUnit)
 	UpdateAllNodesScriptArgument(peersIp)
+	replaceContent := ""
+	if role == "master" {
+		replaceContent = Option + StartScriptAsMaster
+	} else if role == "master+volume" {
+		replaceContent = Option + StartScriptAsMaVo
+	}
+	ReplaceLineContentBySearch(replaceContent, Option, config.Server.ScriptPath, StartServerScript)
 	RestartAllServer(peersIp, coreBaseUnit)
 }
 
@@ -155,13 +166,17 @@
 		startupItem = string(body)
 	}
 	tick := time.Tick(1 * time.Second)
+	fmt.Println("鍑嗗寮�濮嬮獙璇佽妭鐐规湇鍔�")
 	for countdown := timeOut; countdown > 0; countdown-- {
+		fmt.Println("绗�", countdown, "娆¢獙璇�")
 		result := Verification(startupItem, ip)
+		fmt.Println("绗竴娆¢獙璇乺esult缁撴灉锛�", result)
 		if result == true {
 			break
 		}
 		<-tick
 	}
+	fmt.Println("楠岃瘉瀹屾瘯")
 }
 
 //楠岃瘉鏈嶅姟鐘舵��
@@ -206,31 +221,44 @@
 	masterIp := make([]string, 0)
 	timeOut, _ := strconv.Atoi(config.Server.TimeOut)
 	var waitGroup sync.WaitGroup
+	fmt.Println("褰撳墠骞惰搴oreThread锛�", coreThread)
 	for i, ip := range peersIp {
-		fmt.Println("閲嶅惎绗竴缁勬湇鍔�" + ip)
+		fmt.Println("閲嶅惎褰撳墠缁勬湇鍔�" + ip)
 		if (i+1)%coreThread == 0 {
 			masterIp = append(masterIp, strings.Split(ip, ":")[0])
+			fmt.Println("鍔犲叆绗竴缁勫苟寮�濮嬮獙璇佺涓�缁� masterIp: ", masterIp)
 			for i := 0; i < len(masterIp); i++ {
-				go Restart(masterIp[i], timeOut)
+				fmt.Println("len masterIp: ", len(masterIp))
+				fmt.Println("绗�" + strconv.Itoa(i) + "涓嚎绋�")
+				fmt.Println("褰撳墠goroutinebe")
 				waitGroup.Add(1) //姣忓垱寤轰竴涓猤oroutine锛屽氨鎶婁换鍔¢槦鍒椾腑浠诲姟鐨勬暟閲�+1
+				fmt.Println("褰撳墠goroutineaf")
+				go Restart(masterIp[i], timeOut)
+				waitGroup.Done()
 			}
+			fmt.Println("杩欓噷涓洪樆濉烇紒锛侊紒锛侊紒")
 			waitGroup.Wait() //.Wait()杩欓噷浼氬彂鐢熼樆濉烇紝鐩村埌闃熷垪涓墍鏈夌殑浠诲姟缁撴潫灏变細瑙i櫎闃诲
+			fmt.Println("褰撳墠缁勪换鍔″畬鎴�")
 			masterIp = make([]string, 0)
+			fmt.Println("娓呯┖褰撳墠缁勬垚鍛橈細", masterIp)
 		} else {
 			masterIp = append(masterIp, strings.Split(ip, ":")[0])
 			if len(peersIp) == i+1 {
 				var waitGroup sync.WaitGroup
 				for i := 0; i < len(masterIp); i++ {
-					go Restart(masterIp[i], timeOut)
 					waitGroup.Add(1) //姣忓垱寤轰竴涓猤oroutine锛屽氨鎶婁换鍔¢槦鍒椾腑浠诲姟鐨勬暟閲�+1
+					go Restart(masterIp[i], timeOut)
+					waitGroup.Done()
 				}
 				waitGroup.Wait() //.Wait()杩欓噷浼氬彂鐢熼樆濉烇紝鐩村埌闃熷垪涓墍鏈夌殑浠诲姟缁撴潫灏变細瑙i櫎闃诲
 				masterIp = make([]string, 0)
 				break
 			}
 		}
-		continue
+
 	}
+	fmt.Println("鏈嶅姟娴佺▼鎵ц瀹屾瘯")
+
 }
 
 //鑾峰彇鏌ユ壘鍐呭褰撳墠琛屽唴瀹�
@@ -253,11 +281,11 @@
 }
 
 //浣滀负涓昏妭鐐瑰姞鍏ワ紙榛樿鍖呭惈鏁版嵁鑺傜偣锛�
-func AsMaster() bool {
+func AsMaster(role string) bool {
 	AddNewMasterToPeers()
 	nowPeers := GetNowPeersList()
 	fmt.Println("nowPeers: ", nowPeers)
-	RequestMasterNodesOperation(nowPeers)
+	RequestNodesOperation(nowPeers, role)
 	return true
 }
 

--
Gitblit v1.8.0