From f4c1ad199cdd31a454a60e50661db0de1747977a Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期五, 17 四月 2020 17:35:26 +0800
Subject: [PATCH] fix last

---
 controllers/swfsControllers.go |  190 +++++++++++------------------------------------
 1 files changed, 44 insertions(+), 146 deletions(-)

diff --git a/controllers/swfsControllers.go b/controllers/swfsControllers.go
index 17d0b7b..5e009e0 100644
--- a/controllers/swfsControllers.go
+++ b/controllers/swfsControllers.go
@@ -4,8 +4,12 @@
 	"fmt"
 	"github.com/gin-gonic/gin"
 	"strings"
-	"test/config"
-	"test/util"
+	"swfs/code"
+	"swfs/config"
+	"swfs/tools/es"
+	"swfs/tools/middleware"
+	"swfs/tools/script"
+	"swfs/util"
 	"time"
 )
 
@@ -15,165 +19,59 @@
 	Role string `json:"role"`
 }
 
-//淇敼
 func (sc *SeaweedfsController) UpdateSWFSServiceController(c *gin.Context) {
-	oldPeers := GetOldPeers()
-	newPeers := GetNewPeers()
-	UpdatePeers(oldPeers, newPeers)
+	script.ReplaceLineContentBySearch(es.GetNewPeers(), config.Peer, config.Server.ScriptPath, config.StartServerScript)
+	util.ResponseFormat(c, code.Success, config.Server.EsServerIp+"鏇存柊鎴愬姛")
 }
 
+// @Security ApiKeyAuth
+// @Summary 鏂拌妭鐐瑰姞鍏�
+// @Description  鏂拌妭鐐瑰姞鍏�
+// @Accept  json
+// @Produce json
+// @Tags swfs
+// @Param obj body SWFSInfo true "鍔犲叆瑙掕壊鍙傛暟"
+// @Success 200 {string} json "{"code":200, msg:"", success:true}"
+// @Failure 500 {string} json "{"code":500, msg:"", success:false}"
+// @Router /node/api-v/swfs/addSWFSNode [POST]
 func (sc *SeaweedfsController) AddSWFSNodeController(c *gin.Context) {
 	var body SWFSInfo
 	c.BindJSON(&body)
 	role := body.Role
 	if role == "master" {
-		AsMaster()
+		middleware.AsMaster(role)
+		util.ResponseFormat(c, code.AddSuccess, "鍔犲叆鑺傜偣鎴愬姛")
+		return
 	} else if role == "volume" {
-		AsVolume()
+		status := middleware.AsVolume()
+		if status == true {
+			util.ResponseFormat(c, code.AddSuccess, "鍔犲叆鑺傜偣鎴愬姛")
+			return
+		} else {
+			util.ResponseFormat(c, code.AddClusterInfoErr, "褰撳墠杩樻病鏈変富鑺傜偣")
+			return
+		}
+	} else if role == "master+volume" {
+		middleware.AsMaVo(role)
+		util.ResponseFormat(c, code.AddSuccess, "鍔犲叆鑺傜偣鎴愬姛")
 	} else {
-
+		util.ResponseFormat(c, code.RequestParamError, "閫夋嫨鑺傜偣绫诲瀷閿欒")
 		return
 	}
 
 }
 
-func (sc *SeaweedfsController) RestartMaster(c *gin.Context) {
-	end := "sh /opt/vasystem/script/seaweedfs_stop.sh"
-	start := "sh /opt/vasystem/script/seaweedfs_start.sh"
-	util.RunScript(end)
-	util.RunScript(start)
+func (sc *SeaweedfsController) RoleOfVolumeToMasterController(c *gin.Context) {
+	middleware.AsMaster("master+volume")
+	util.ResponseFormat(c, code.Success, "瑙掕壊娣诲姞鎴愬姛")
 }
 
-func RequestMasterNodesOperation() {
-	nowPeers := GetNowPeersList()
-	coreThread := len(nowPeers)/100 + 1
-	masterIp := make([]string, 0)
-	for i, val := range nowPeers {
-		ip := val.(string)
-		if (i+1)%coreThread == 0 {
-			masterIp = append(masterIp, strings.Split(ip, ":")[0])
-			for _, val := range masterIp {
-				RestartOrtherMaster(val)
-				masterIp = append(masterIp[:0], masterIp[1:]...)
-			}
-			time.Sleep(time.Second * 2)
-		} else {
-			masterIp = append(masterIp, strings.Split(ip, ":")[0])
-			if len(nowPeers) == i+1 {
-				for _, val := range masterIp {
-					RestartOrtherMaster(val)
-				}
-				break
-			}
-			continue
-		}
-	}
-}
-
-func GetOldPeers() string {
-	str := "cat /opt/vasystem/seaweedfs_start.sh | grep peers="
-	peers := strings.Split(util.RunScript(str), "\n")[0]
-	return peers
-}
-
-func AsVolume() {
-	nowPeers := GetNowPeersList()
-	fmt.Println(nowPeers)
-}
-
-func AsMaster() {
-	nowPeers := GetNowPeersList()
-	coreThread := len(nowPeers) / 100
-	fmt.Println(coreThread)
-
-}
-
-func GetNowPeersList() []interface{} {
-
-	getUrl := "http://" + config.Server.EsServerIp + ":" + config.Server.EsServerPort + "/" + config.BasicFS.IndexName + "/_search"
-	getJson := `{
-    "query": {
-        "bool": {
-            "filter": [
-                {
-                    "term": {
-						"application":"nodeOperation"
-					}
-                }
-            ]
-        }
-    },
-    "size": 1
-}`
-
-	buf, _ := util.EsReq("POST", getUrl, []byte(getJson))
-	source, _ := util.Sourcelist(buf)
-	//fmt.Println(source)
-	peers := source[0]["peers"].([]interface{})
-	return peers
-}
-
-func GetNewPeers() string {
-
-	getUrl := "http://" + config.Server.EsServerIp + ":" + config.Server.EsServerPort + "/" + config.BasicFS.IndexName + "/_search"
-	getJson := `{
-    "query": {
-        "bool": {
-            "filter": [
-                {
-                    "term": {
-						"application":"nodeOperation"
-					}
-                }
-            ]
-        }
-    },
-    "size": 1
-}`
-
-	buf, _ := util.EsReq("POST", getUrl, []byte(getJson))
-	source, _ := util.Sourcelist(buf)
-	//fmt.Println(source)
-	peers := source[0]["peers"].([]interface{})
-	fmt.Println(peers)
-	p := "peers=" + strings.Replace(strings.Trim(fmt.Sprint(peers), "[]"), " ", ",", -1)
-	return p
-}
-
-func UpdatePeers(oldPeers string, newPeers string) {
-	str := "sed -ie 's/" + oldPeers + "/" + newPeers + "/g' /opt/vasystem/seaweedfs_start.sh"
-	util.RunScript(str)
-}
-
-func AddNewMasterToPeers() (result bool) {
-	peer := config.Server.EsServerIp + ":6333"
-	addUrl := "http://" + config.Server.EsServerIp + ":" + config.Server.EsServerPort + "/" + config.BasicFS.IndexName + "/_update_by_query"
-	addJson := `{
-    "script": {
-        "lang": "painless",
-        "inline": "ctx._source.peers.add(params.newpeer)",
-        "params": {
-            "newpeer": "` + peer + `"
-        }
-    },
-    "query": {
-        "bool": {
-            "filter": [
-                {
-                    "term": {
-                        "application": "nodeOperation"
-                    }
-                }
-            ]
-        }
-    }
-}`
-	buf, _ := util.EsReq("POST", addUrl, []byte(addJson))
-	updateRes, _ := util.SourceUpdated(buf)
-	if updateRes == -1 {
-		result = false
-	} else {
-		result = true
-	}
-	return result
+func (sc *SeaweedfsController) RestartServerController(c *gin.Context) {
+	script.StopServer(config.Server.ScriptPath)
+	script.StartServer(config.Server.ScriptPath)
+	time.Sleep(time.Second * 1)
+	//fmt.Println("GetLocalStartupItem: ", GetLocalStartupItem(config.Server.ScriptPath, StartServerScript))
+	result := strings.Split(middleware.GetLocalStartupItem(config.Server.ScriptPath, config.StartServerScript), "=")[1]
+	fmt.Println("result: ", result)
+	util.ResponseFormat(c, code.Success, result)
 }

--
Gitblit v1.8.0