package es import ( "fmt" "strings" "swfs/config" "swfs/util" ) //向集群加入新的master func AddNewMasterToPeers() (result bool) { peer := config.Server.EsServerIp + ":6333" addUrl := "http://" + config.Server.EsServerIp + ":" + config.Server.EsServerPort + "/" + config.BasicFS.IndexName + "/_update_by_query?refresh=true" 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 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) peers := source[0]["peers"].([]interface{}) return peers } //获取当前集群列表格式化信息 func GetNewPeers() string { peers := GetNowPeersList() p := config.Peer + strings.Replace(strings.Trim(fmt.Sprint(peers), "[]"), " ", ",", -1) return p }