From 63645d248c765244488cd34dbc1bb6528ca6b7c7 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 05 九月 2023 09:58:13 +0800 Subject: [PATCH] 修复编译 --- system-service/controllers/test.go | 706 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 353 insertions(+), 353 deletions(-) diff --git a/system-service/controllers/test.go b/system-service/controllers/test.go index 1689de6..a9ce2ae 100644 --- a/system-service/controllers/test.go +++ b/system-service/controllers/test.go @@ -1,353 +1,353 @@ -package controllers - -import ( - "basic.com/pubsub/esutil.git" - "basic.com/valib/bhomeclient.git" - "bytes" - "encoding/json" - "fmt" - "io/ioutil" - "net/http" - "strings" - "time" - "vamicro/config" - "vamicro/system-service/sys" - "vamicro/system-service/util" -) - -type TestControllers struct{} - -type NodeInfo struct { - BinPath string `json:"binPath"` - ConfigPath string `json:"configPath"` - IndexPath string `json:"indexPath"` - ScriptPath string `json:"scriptPath"` - Ip string `json:"ip"` - Port string `json:"port"` - Peers []string `json:"peers"` -} - -//鍒涘缓闆嗙兢锛堝垵鍒涜妭鐐癸紝鍒濆鑺傜偣锛屼竴涓泦缇よ鍔熻兘鍙彲杩愯涓�娆★級 -func (tc *TestControllers) CreateOriginalClusterT(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - verPort := "9200" - var ni NodeInfo - c.BindJSON(&ni) - configPath := ni.ConfigPath - binPath := ni.BinPath - fmt.Println("configPath: ", configPath) - fmt.Println("binPath: ", binPath) - fmt.Println("verIp: ", verIp) - fmt.Println("verPort: ", verPort) - sp := esutil.StopServer(binPath, "0.0.0.0", verPort) - fmt.Println("sp: ", sp) - if sp == true { - return &bhomeclient.Reply{Msg: "binPath璺緞閿欒"} - } - _, errC := esutil.VerifyCreated(configPath) - if errC != nil { - fmt.Println("errC: ", errC) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errC)} - } - _, errI := esutil.InitYml(configPath) - if errI != nil { - fmt.Println("errI: ", errI) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errI)} - } - _, errR := esutil.UpdateNodeRole(configPath, "master") - if errR != nil { - fmt.Println("errR: ", errR) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errR)} - } - _, errS := esutil.SetDiscoveryZenPingUnicastHosts(configPath, []string{verIp}) - if errS != nil { - fmt.Println("errS: ", errS) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errS)} - } - st := esutil.StartServer(binPath, verIp, verPort) - if st == false { - fmt.Println("st: ", st) - return &bhomeclient.Reply{Msg: "binPath璺緞閿欒"} - } - fmt.Println("resultfff: ") - result := esutil.VerifyNodeServer("0.0.0.0", "9200", 20) - fmt.Println("resultsss: ", result) - if result == false { - fmt.Println("result: ", result) - return &bhomeclient.Reply{Msg: "鏈嶅姟鍚姩瓒呮椂"} - } - fmt.Println("resulteee: ", result) - rIndexInit := esutil.InitIndex(ni.IndexPath) - if rIndexInit == false { - fmt.Println("绱㈠紩鍒濆鍖栧け璐�") - return &bhomeclient.Reply{Msg: "绱㈠紩鍒濆鍖栧け璐�"} - } - return &bhomeclient.Reply{Success: true, Msg: "鎼炲畾锛侊紒锛侊紒锛侊紒锛�"} -} - -//鍔犲叆闆嗙兢锛堣鑺傜偣灏嗘牴鎹绠楀緱鍑鸿嚜宸遍渶瑕佹壆婕旂殑瑙掕壊锛� -func (tc *TestControllers) AddClusterT(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - var ni NodeInfo - c.BindJSON(&ni) - binPath := ni.BinPath - configPath := ni.ConfigPath - ip := ni.Ip - port := ni.Port - verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - verPort := "9200" - localIp := verIp - localPort := verPort - sp := esutil.StopServer(binPath, "0.0.0.0", "9200") - if sp == true { - fmt.Println("sp: ", sp) - return &bhomeclient.Reply{Msg: "binPath璺緞閿欒"} - } - LocalRole := "slave" - _, errC := esutil.VerifyCreated(configPath) - if errC != nil { - fmt.Println("errC: ", errC) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errC)} - } - NodesInfo, errG := esutil.GetClusterInfo(ip, port) - if errG != nil { - fmt.Println("errG: ", errG) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errG)} - } - TotalAllNodes := len(NodesInfo) - if TotalAllNodes < 1 { - fmt.Println("鐩爣闆嗙兢涓嶅瓨鍦�") - return &bhomeclient.Reply{Msg: "鐩爣闆嗙兢涓嶅瓨鍦�"} - } - TotalMasterNodes := 0 - hosts := make([]string, 0) - allHosts := make([]string, 0) - for _, mp := range NodesInfo { - if mp.NodeRole == "master" { - TotalMasterNodes = TotalMasterNodes + 1 - hosts = append(hosts, mp.NodeIp) - } - allHosts = append(allHosts, mp.NodeIp) - } - if TotalAllNodes/5 > TotalMasterNodes { - LocalRole = "master" - hosts = append(hosts, localIp) - } - _, errNR := esutil.UpdateNodeRole(configPath, LocalRole) - if errNR != nil { - fmt.Println("errNR: ", errNR) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errNR)} - } - for _, mpk := range allHosts { - url := "http://" + mpk + ":8888/data/api-v/es/node/synchronizeHosts" - body := `{ - "binPath":"` + binPath + `", - "configPath":"` + configPath + `", - "hosts":["` + strings.Join(hosts, ",") + `"] - }` - _, err := HttpRCT("POST", url, []byte(body)) - if err != nil { - fmt.Println("err: ", err) - return &bhomeclient.Reply{Msg: mpk + "鑺傜偣鍚屾澶辫触"} - } - } - _, errS := esutil.SetDiscoveryZenPingUnicastHosts(configPath, hosts) - if errS != nil { - fmt.Println("errS: ", errS) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errS)} - } - st := esutil.StartServer(binPath, localIp, localPort) - if st == false { - fmt.Println("st: ", st) - return &bhomeclient.Reply{Msg: "鏈嶅姟鍚姩瓒呮椂"} - } - return &bhomeclient.Reply{Success: true, Msg: "鎼炲畾锛侊紒锛侊紒锛侊紒锛�"} -} - -//閫�鍑洪泦缇わ紙浠庡綋鍓嶉泦缇ら��鍑猴級 -func (tc *TestControllers) ExitClusterT(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - var ni NodeInfo - c.BindJSON(&ni) - configPath := ni.ConfigPath - binPath := ni.BinPath - verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - verPort := "9200" - localIp := verIp - localPort := verPort - hosts, errH := esutil.GetDiscoveryZenPingUnicastHosts(configPath) - if errH != nil { - fmt.Println("errH: ", errH) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errH)} - } - for _, p := range hosts { - if p == localIp { - fmt.Println("涓昏妭鐐逛笉鍏佽閫�鍑洪泦缇�") - return &bhomeclient.Reply{Msg: "涓昏妭鐐逛笉鍏佽閫�鍑洪泦缇�"} - } - } - _, errEN := esutil.ExcludeNode(localIp, localPort) - if errEN != nil { - fmt.Println("errEN: ", errEN) - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errEN)} - } - sp := esutil.StopServer(binPath, "0.0.0.0", "9200") - if sp == true { - fmt.Println("binPath璺緞閿欒") - return &bhomeclient.Reply{Msg: "binPath璺緞閿欒"} - } - _, errS := esutil.SetDiscoveryZenPingUnicastHosts(configPath, nil) - if errS != nil { - return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errS)} - } - return &bhomeclient.Reply{Success: true, Msg: "鎼炲畾锛侊紒锛侊紒锛侊紒锛�"} -} - -func HttpRCT(method string, url string, parama []byte) (buf []byte, err error) { - timeout := time.Duration(30 * time.Second) - client := http.Client{ - Timeout: timeout, - } - request, err := http.NewRequest(method, url, bytes.NewBuffer(parama)) - request.Header.Set("Content-type", "application/json") - request.Header.Add("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ3ND"+ - "UwMjU5MjMsInVzZXIiOiJ7XCJpZFwiOlwiZTZjY2QzNmQtNGYxNi00NmZjLTg4ZDUtMDczNjU4NjZkMjA1XCIsXCJwZXJtaXNzaW"+ - "9uc1wiOltcInByb2R1Y3RNYW5nZTpwdWJsaXNoXCIsXCJjb2RlTWFuZ2U6dmlld1wiLFwiZGV2aWNlTWFuYWdlOmFkZFwiLFwiYW"+ - "RtaW5NYW5hZ2VcIixcIm9yZGVyTWFuZ2VcIixcImRldmljZU1hbmFnZTp2aWV3XCIsXCJwcm9kdWN0TWFuZ2U6YWRkXCIsXCJhZG"+ - "1pbk1hbmFnZTp2aWV3XCIsXCJjb2RlTWFuZ2U6YWRkXCIsXCJwcm9kdWN0TWFuZ2U6b2ZmU2FsZVwiLFwib3JkZXJNYW5nZTpjYW"+ - "5jZWxcIixcInByb2R1Y3RDZW50ZXI6ZG93bmxvYWRcIixcInByb2R1Y3RDZW50ZXI6YnV5XCIsXCJwcm9kdWN0TWFuZ2U6dmlld1"+ - "wiLFwiYXBpXCIsXCJob21lXCIsXCJvcmRlck1hbmdlOnBheVwiLFwiYWRtaW5NYW5hZ2U6YWRkXCIsXCJvcmRlck1hbmdlOmRvd2"+ - "5sb2FkXCIsXCJwcm9kdWN0Q2VudGVyXCIsXCJkZXZpY2VNYW5hZ2U6dW5iaW5kXCIsXCJvcmRlck1hbmdlOnZpZXdcIixcImFkbW"+ - "luTWFuYWdlOmVkaXRcIixcImRldmljZU1hbmFnZVwiLFwidmlwTWFuYWdlOmFkZFwiLFwidmlwTWFuYWdlOnZpZXdcIixcInByb2"+ - "R1Y3RDZW50ZXI6dmlld1wiLFwidmlwTWFuYWdlOmVkaXRcIixcInZpcE1hbmFnZVwiLFwicHJvZHVjdE1hbmdlOmVkaXRcIixcIm"+ - "NvZGVNYW5nZVwiLFwicHJvZHVjdE1hbmdlXCJdLFwidXNlcm5hbWVcIjpcImJhc2ljXCJ9In0.vwjAFkWuEyadRLvIOGK8LFE3Mj"+ - "pY3SQ7j6AlTXnQDG8") - - if err != nil { - fmt.Println("build request fail !") - return nil, err - } - - resp, err := client.Do(request) - if err != nil { - fmt.Println("request error: ", err) - return nil, err - } - - defer resp.Body.Close() - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - fmt.Println(err) - return nil, err - } - return body, nil -} - -func (tc *TestControllers) CreateServer(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - var ni NodeInfo - c.BindJSON(&ni) - ip, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - scriptPath := ni.ScriptPath - peers := make([]string, 0) - peers = append(peers, ip+":6333") - _, err := util.VerifyServer(ip) - if err == nil { - sp := util.StopServer(scriptPath) - if sp == false { - return &bhomeclient.Reply{Msg: "stop scriptPath 璺緞閿欒锛�"} - } - } - sc := util.SetConfig(scriptPath, ip, peers, "000") - if sc == false { - return &bhomeclient.Reply{Msg: "set scriptPath 璺緞閿欒锛�"} - } - st := util.StartServer(scriptPath) - if st == false { - return &bhomeclient.Reply{Msg: "start scriptPath 璺緞閿欒锛�"} - } - time.Sleep(time.Second * 5) - _, errF := util.VerifyServer(ip) - if errF != nil { - time.Sleep(time.Second * 5) - _, errS := util.VerifyServer(ip) - if errS != nil { - return &bhomeclient.Reply{Msg: "鍚姩瓒呮椂"} - } - } - return &bhomeclient.Reply{Success: true, Msg: "鍒涘缓鎴愬姛锛�"} -} - -func (tc *TestControllers) AddServer(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - var ni NodeInfo - c.BindJSON(&ni) - ip := ni.Ip - localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - url := "http://" + ip + ":8888/data/api-v/swfs/getSWFSPeers" - body := `{"scriptPath":"` + ni.ScriptPath + `"}` - buf, err := HttpRCT("POST", url, []byte(body)) - if err != nil { - return &bhomeclient.Reply{Msg: "鑾峰彇peers鍒楄〃澶辫触"} - } - var info interface{} - json.Unmarshal(buf, &info) - peers := info.(map[string]interface{})["data"].([]interface{}) - if len(peers) < 1 { - return &bhomeclient.Reply{Msg: "鎸囧畾ip涓嶅瓨鍦ㄩ泦缇�!"} - } - for _, pc := range peers { - if strings.Contains(pc.(string), localIp) == true { - return &bhomeclient.Reply{Msg: "璇ヨ妭鐐瑰凡缁忓湪鐩爣闆嗙兢"} - } - } - peers = append(peers, localIp+":6333") - for _, pick := range peers { - mIp := strings.Split(pick.(string), ":")[0] - url := "http://" + mIp + ":8888/data/api-v/swfs/syncSWFSNode" - body := `{"scriptPath":"` + ni.ScriptPath + `", - "peers":["` + strings.Replace(strings.Trim(fmt.Sprint(peers), "[]"), " ", "\",\"", -1) + `"]}` - _, err := HttpRCT("POST", url, []byte(body)) - if err != nil { - return &bhomeclient.Reply{Msg: mIp + "鑺傜偣淇敼澶辫触"} - } - } - return &bhomeclient.Reply{Success: true, Msg: "鍔犲叆鎴愬姛锛侊紒锛�"} -} - -func (tc *TestControllers) ExitServer(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { - var ni NodeInfo - c.BindJSON(&ni) - scriptPath := ni.ScriptPath - - localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - configInfo, err := util.GetConfig(scriptPath) - if err != nil { - return &bhomeclient.Reply{Msg: "鑾峰彇peers鍒楄〃澶辫触"} - } - newPeers := make([]string, 0) - for _, p := range configInfo.Peers { - if strings.Split(p, ":")[0] == localIp { - continue - } - newPeers = append(newPeers, p) - } - for _, pick := range newPeers { - mIp := strings.Split(pick, ":")[0] - url := "http://" + mIp + ":8888/data/api-v/swfs/syncSWFSNode/" - body := `{"scriptPath":"` + ni.ConfigPath + `", - "peers":["` + strings.Replace(strings.Trim(fmt.Sprint(newPeers), "[]"), " ", "\",\"", -1) + `"]}` - _, err := HttpRCT("POST", url, []byte(body)) - if err != nil { - return &bhomeclient.Reply{Msg: mIp + "鑺傜偣淇敼澶辫触"} - } - } - sc := util.SetConfig(scriptPath, "", []string{}, "000") - if sc == false { - return &bhomeclient.Reply{Msg: "scriptPath 璺緞閿欒锛�"} - } - _, errVS := util.VerifyServer(localIp) - if errVS == nil { - sp := util.StopServer(scriptPath) - if sp == false { - return &bhomeclient.Reply{Msg: "stop scriptPath 璺緞閿欒锛�"} - } - } - return &bhomeclient.Reply{Success: true, Msg: "閫�鍑烘垚鍔燂紒锛侊紒"} -} +package controllers + +import ( + "basic.com/pubsub/esutil.git" + "basic.com/valib/bhomeclient.git" + "bytes" + "encoding/json" + "fmt" + "io/ioutil" + "net/http" + "strings" + "time" + "vamicro/config" + "vamicro/system-service/sys" + "vamicro/system-service/util" +) + +type TestControllers struct{} + +type NodeInfo struct { + BinPath string `json:"binPath"` + ConfigPath string `json:"configPath"` + IndexPath string `json:"indexPath"` + ScriptPath string `json:"scriptPath"` + Ip string `json:"ip"` + Port string `json:"port"` + Peers []string `json:"peers"` +} + +//鍒涘缓闆嗙兢锛堝垵鍒涜妭鐐癸紝鍒濆鑺傜偣锛屼竴涓泦缇よ鍔熻兘鍙彲杩愯涓�娆★級 +func (tc *TestControllers) CreateOriginalClusterT(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + verPort := "9200" + var ni NodeInfo + c.BindJSON(&ni) + configPath := ni.ConfigPath + binPath := ni.BinPath + fmt.Println("configPath: ", configPath) + fmt.Println("binPath: ", binPath) + fmt.Println("verIp: ", verIp) + fmt.Println("verPort: ", verPort) + sp := esutil.StopServer(binPath, "0.0.0.0", verPort) + fmt.Println("sp: ", sp) + if sp == true { + return &bhomeclient.Reply{Msg: "binPath璺緞閿欒"} + } + _, errC := esutil.VerifyCreated(configPath) + if errC != nil { + fmt.Println("errC: ", errC) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errC)} + } + _, errI := esutil.InitYml(configPath) + if errI != nil { + fmt.Println("errI: ", errI) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errI)} + } + _, errR := esutil.UpdateNodeRole(configPath, "master") + if errR != nil { + fmt.Println("errR: ", errR) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errR)} + } + _, errS := esutil.SetDiscoveryZenPingUnicastHosts(configPath, []string{verIp}) + if errS != nil { + fmt.Println("errS: ", errS) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errS)} + } + st := esutil.StartServer(binPath, verIp, verPort) + if st == false { + fmt.Println("st: ", st) + return &bhomeclient.Reply{Msg: "binPath璺緞閿欒"} + } + fmt.Println("resultfff: ") + result := esutil.VerifyNodeServer("0.0.0.0", "9200", 20) + fmt.Println("resultsss: ", result) + if result == false { + fmt.Println("result: ", result) + return &bhomeclient.Reply{Msg: "鏈嶅姟鍚姩瓒呮椂"} + } + fmt.Println("resulteee: ", result) + rIndexInit := esutil.InitIndex(ni.IndexPath) + if rIndexInit == false { + fmt.Println("绱㈠紩鍒濆鍖栧け璐�") + return &bhomeclient.Reply{Msg: "绱㈠紩鍒濆鍖栧け璐�"} + } + return &bhomeclient.Reply{Success: true, Msg: "鎼炲畾锛侊紒锛侊紒锛侊紒锛�"} +} + +//鍔犲叆闆嗙兢锛堣鑺傜偣灏嗘牴鎹绠楀緱鍑鸿嚜宸遍渶瑕佹壆婕旂殑瑙掕壊锛� +func (tc *TestControllers) AddClusterT(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + var ni NodeInfo + c.BindJSON(&ni) + binPath := ni.BinPath + configPath := ni.ConfigPath + ip := ni.Ip + port := ni.Port + verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + verPort := "9200" + localIp := verIp + localPort := verPort + sp := esutil.StopServer(binPath, "0.0.0.0", "9200") + if sp == true { + fmt.Println("sp: ", sp) + return &bhomeclient.Reply{Msg: "binPath璺緞閿欒"} + } + LocalRole := "slave" + _, errC := esutil.VerifyCreated(configPath) + if errC != nil { + fmt.Println("errC: ", errC) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errC)} + } + NodesInfo, errG := esutil.GetClusterInfo(ip, port) + if errG != nil { + fmt.Println("errG: ", errG) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errG)} + } + TotalAllNodes := len(NodesInfo) + if TotalAllNodes < 1 { + fmt.Println("鐩爣闆嗙兢涓嶅瓨鍦�") + return &bhomeclient.Reply{Msg: "鐩爣闆嗙兢涓嶅瓨鍦�"} + } + TotalMasterNodes := 0 + hosts := make([]string, 0) + allHosts := make([]string, 0) + for _, mp := range NodesInfo { + if mp.NodeRole == "master" { + TotalMasterNodes = TotalMasterNodes + 1 + hosts = append(hosts, mp.NodeIp) + } + allHosts = append(allHosts, mp.NodeIp) + } + if TotalAllNodes/5 > TotalMasterNodes { + LocalRole = "master" + hosts = append(hosts, localIp) + } + _, errNR := esutil.UpdateNodeRole(configPath, LocalRole) + if errNR != nil { + fmt.Println("errNR: ", errNR) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errNR)} + } + for _, mpk := range allHosts { + url := "http://" + mpk + ":8888/data/api-v/es/node/synchronizeHosts" + body := `{ + "binPath":"` + binPath + `", + "configPath":"` + configPath + `", + "hosts":["` + strings.Join(hosts, ",") + `"] + }` + _, err := HttpRCT("POST", url, []byte(body)) + if err != nil { + fmt.Println("err: ", err) + return &bhomeclient.Reply{Msg: mpk + "鑺傜偣鍚屾澶辫触"} + } + } + _, errS := esutil.SetDiscoveryZenPingUnicastHosts(configPath, hosts) + if errS != nil { + fmt.Println("errS: ", errS) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errS)} + } + st := esutil.StartServer(binPath, localIp, localPort) + if st == false { + fmt.Println("st: ", st) + return &bhomeclient.Reply{Msg: "鏈嶅姟鍚姩瓒呮椂"} + } + return &bhomeclient.Reply{Success: true, Msg: "鎼炲畾锛侊紒锛侊紒锛侊紒锛�"} +} + +//閫�鍑洪泦缇わ紙浠庡綋鍓嶉泦缇ら��鍑猴級 +func (tc *TestControllers) ExitClusterT(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + var ni NodeInfo + c.BindJSON(&ni) + configPath := ni.ConfigPath + binPath := ni.BinPath + verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + verPort := "9200" + localIp := verIp + localPort := verPort + hosts, errH := esutil.GetDiscoveryZenPingUnicastHosts(configPath) + if errH != nil { + fmt.Println("errH: ", errH) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errH)} + } + for _, p := range hosts { + if p == localIp { + fmt.Println("涓昏妭鐐逛笉鍏佽閫�鍑洪泦缇�") + return &bhomeclient.Reply{Msg: "涓昏妭鐐逛笉鍏佽閫�鍑洪泦缇�"} + } + } + _, errEN := esutil.ExcludeNode(localIp, localPort) + if errEN != nil { + fmt.Println("errEN: ", errEN) + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errEN)} + } + sp := esutil.StopServer(binPath, "0.0.0.0", "9200") + if sp == true { + fmt.Println("binPath璺緞閿欒") + return &bhomeclient.Reply{Msg: "binPath璺緞閿欒"} + } + _, errS := esutil.SetDiscoveryZenPingUnicastHosts(configPath, nil) + if errS != nil { + return &bhomeclient.Reply{Msg: fmt.Sprint("%s", errS)} + } + return &bhomeclient.Reply{Success: true, Msg: "鎼炲畾锛侊紒锛侊紒锛侊紒锛�"} +} + +func HttpRCT(method string, url string, parama []byte) (buf []byte, err error) { + timeout := time.Duration(30 * time.Second) + client := http.Client{ + Timeout: timeout, + } + request, err := http.NewRequest(method, url, bytes.NewBuffer(parama)) + request.Header.Set("Content-type", "application/json") + request.Header.Add("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ3ND"+ + "UwMjU5MjMsInVzZXIiOiJ7XCJpZFwiOlwiZTZjY2QzNmQtNGYxNi00NmZjLTg4ZDUtMDczNjU4NjZkMjA1XCIsXCJwZXJtaXNzaW"+ + "9uc1wiOltcInByb2R1Y3RNYW5nZTpwdWJsaXNoXCIsXCJjb2RlTWFuZ2U6dmlld1wiLFwiZGV2aWNlTWFuYWdlOmFkZFwiLFwiYW"+ + "RtaW5NYW5hZ2VcIixcIm9yZGVyTWFuZ2VcIixcImRldmljZU1hbmFnZTp2aWV3XCIsXCJwcm9kdWN0TWFuZ2U6YWRkXCIsXCJhZG"+ + "1pbk1hbmFnZTp2aWV3XCIsXCJjb2RlTWFuZ2U6YWRkXCIsXCJwcm9kdWN0TWFuZ2U6b2ZmU2FsZVwiLFwib3JkZXJNYW5nZTpjYW"+ + "5jZWxcIixcInByb2R1Y3RDZW50ZXI6ZG93bmxvYWRcIixcInByb2R1Y3RDZW50ZXI6YnV5XCIsXCJwcm9kdWN0TWFuZ2U6dmlld1"+ + "wiLFwiYXBpXCIsXCJob21lXCIsXCJvcmRlck1hbmdlOnBheVwiLFwiYWRtaW5NYW5hZ2U6YWRkXCIsXCJvcmRlck1hbmdlOmRvd2"+ + "5sb2FkXCIsXCJwcm9kdWN0Q2VudGVyXCIsXCJkZXZpY2VNYW5hZ2U6dW5iaW5kXCIsXCJvcmRlck1hbmdlOnZpZXdcIixcImFkbW"+ + "luTWFuYWdlOmVkaXRcIixcImRldmljZU1hbmFnZVwiLFwidmlwTWFuYWdlOmFkZFwiLFwidmlwTWFuYWdlOnZpZXdcIixcInByb2"+ + "R1Y3RDZW50ZXI6dmlld1wiLFwidmlwTWFuYWdlOmVkaXRcIixcInZpcE1hbmFnZVwiLFwicHJvZHVjdE1hbmdlOmVkaXRcIixcIm"+ + "NvZGVNYW5nZVwiLFwicHJvZHVjdE1hbmdlXCJdLFwidXNlcm5hbWVcIjpcImJhc2ljXCJ9In0.vwjAFkWuEyadRLvIOGK8LFE3Mj"+ + "pY3SQ7j6AlTXnQDG8") + + if err != nil { + fmt.Println("build request fail !") + return nil, err + } + + resp, err := client.Do(request) + if err != nil { + fmt.Println("request error: ", err) + return nil, err + } + + defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + fmt.Println(err) + return nil, err + } + return body, nil +} + +func (tc *TestControllers) CreateServer(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + var ni NodeInfo + c.BindJSON(&ni) + ip, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + scriptPath := ni.ScriptPath + peers := make([]string, 0) + peers = append(peers, ip+":6333") + _, err := util.VerifyServer(ip) + if err == nil { + sp := util.StopServer(scriptPath) + if sp == false { + return &bhomeclient.Reply{Msg: "stop scriptPath 璺緞閿欒锛�"} + } + } + sc := util.SetConfig(scriptPath, ip, peers, "000") + if sc == false { + return &bhomeclient.Reply{Msg: "set scriptPath 璺緞閿欒锛�"} + } + st := util.StartServer(scriptPath) + if st == false { + return &bhomeclient.Reply{Msg: "start scriptPath 璺緞閿欒锛�"} + } + time.Sleep(time.Second * 5) + _, errF := util.VerifyServer(ip) + if errF != nil { + time.Sleep(time.Second * 5) + _, errS := util.VerifyServer(ip) + if errS != nil { + return &bhomeclient.Reply{Msg: "鍚姩瓒呮椂"} + } + } + return &bhomeclient.Reply{Success: true, Msg: "鍒涘缓鎴愬姛锛�"} +} + +func (tc *TestControllers) AddServer(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + var ni NodeInfo + c.BindJSON(&ni) + ip := ni.Ip + localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + url := "http://" + ip + ":8888/data/api-v/swfs/getSWFSPeers" + body := `{"scriptPath":"` + ni.ScriptPath + `"}` + buf, err := HttpRCT("POST", url, []byte(body)) + if err != nil { + return &bhomeclient.Reply{Msg: "鑾峰彇peers鍒楄〃澶辫触"} + } + var info interface{} + json.Unmarshal(buf, &info) + peers := info.(map[string]interface{})["data"].([]interface{}) + if len(peers) < 1 { + return &bhomeclient.Reply{Msg: "鎸囧畾ip涓嶅瓨鍦ㄩ泦缇�!"} + } + for _, pc := range peers { + if strings.Contains(pc.(string), localIp) == true { + return &bhomeclient.Reply{Msg: "璇ヨ妭鐐瑰凡缁忓湪鐩爣闆嗙兢"} + } + } + peers = append(peers, localIp+":6333") + for _, pick := range peers { + mIp := strings.Split(pick.(string), ":")[0] + url := "http://" + mIp + ":8888/data/api-v/swfs/syncSWFSNode" + body := `{"scriptPath":"` + ni.ScriptPath + `", + "peers":["` + strings.Replace(strings.Trim(fmt.Sprint(peers), "[]"), " ", "\",\"", -1) + `"]}` + _, err := HttpRCT("POST", url, []byte(body)) + if err != nil { + return &bhomeclient.Reply{Msg: mIp + "鑺傜偣淇敼澶辫触"} + } + } + return &bhomeclient.Reply{Success: true, Msg: "鍔犲叆鎴愬姛锛侊紒锛�"} +} + +func (tc *TestControllers) ExitServer(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { + var ni NodeInfo + c.BindJSON(&ni) + scriptPath := ni.ScriptPath + + localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + configInfo, err := util.GetConfig(scriptPath) + if err != nil { + return &bhomeclient.Reply{Msg: "鑾峰彇peers鍒楄〃澶辫触"} + } + newPeers := make([]string, 0) + for _, p := range configInfo.Peers { + if strings.Split(p, ":")[0] == localIp { + continue + } + newPeers = append(newPeers, p) + } + for _, pick := range newPeers { + mIp := strings.Split(pick, ":")[0] + url := "http://" + mIp + ":8888/data/api-v/swfs/syncSWFSNode/" + body := `{"scriptPath":"` + ni.ConfigPath + `", + "peers":["` + strings.Replace(strings.Trim(fmt.Sprint(newPeers), "[]"), " ", "\",\"", -1) + `"]}` + _, err := HttpRCT("POST", url, []byte(body)) + if err != nil { + return &bhomeclient.Reply{Msg: mIp + "鑺傜偣淇敼澶辫触"} + } + } + sc := util.SetConfig(scriptPath, "", []string{}, "000") + if sc == false { + return &bhomeclient.Reply{Msg: "scriptPath 璺緞閿欒锛�"} + } + _, errVS := util.VerifyServer(localIp) + if errVS == nil { + sp := util.StopServer(scriptPath) + if sp == false { + return &bhomeclient.Reply{Msg: "stop scriptPath 璺緞閿欒锛�"} + } + } + return &bhomeclient.Reply{Success: true, Msg: "閫�鍑烘垚鍔燂紒锛侊紒"} +} -- Gitblit v1.8.0