From ba58b9f004c49b51707df80d8659c6029b6659ed Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期二, 24 三月 2020 14:33:40 +0800
Subject: [PATCH] first commit

---
 go.mod  |    3 +
 main.go |   97 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..e27256d
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,3 @@
+module test
+
+go 1.12
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..5388689
--- /dev/null
+++ b/main.go
@@ -0,0 +1,97 @@
+package main
+
+import (
+	"bytes"
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"os/exec"
+	"time"
+)
+
+func main() {
+
+	oldPeers := GetOldPeers()
+	fmt.Println("oldPeers: ", oldPeers)
+	newPeers := GetNewPeers()
+	fmt.Println("newPeers: ", newPeers)
+	UpdatePeers(oldPeers, newPeers)
+	time.Sleep(time.Second * 3)
+	nowPeers := GetOldPeers()
+	fmt.Println("nowPeers: ", nowPeers)
+}
+
+func GetOldPeers() string {
+	str := "cat /opt/vasystem/seaweedfs_start.sh | grep peers="
+	peers := RunScript(str)
+	return peers
+}
+
+func GetNewPeers() string {
+	getUrl := "http://192.168.20.10:9200/basicfs/_search"
+	getJson := `{
+    "query": {
+        "bool": {
+            "filter": [
+                {
+                    "term": {
+						"application":"nodeOperation"
+					}
+                }
+            ]
+        }
+    },
+    "size": 1
+}`
+
+	getRes, _ := EsReq("POST", getUrl, []byte(getJson))
+	fmt.Println(getRes)
+	return ""
+}
+
+func UpdatePeers(oldPeers string, newPeers string) {
+	str := "sed -ie 's/" + oldPeers + "/" + newPeers + "/g' /opt/vasystem/seaweedfs_start.sh"
+	RunScript(str)
+}
+
+//鑴氭湰灏佽
+func RunScript(str string) string {
+
+	cmd := exec.Command("sh", "-c", str)
+	var out bytes.Buffer
+	cmd.Stdout = &out
+	err := cmd.Run()
+	if err != nil {
+		return "杩愯澶辫触"
+	}
+	return out.String()
+}
+
+//瑙f瀽http
+func EsReq(method string, url string, parama []byte) (buf []byte, err error) {
+	timeout := time.Duration(10 * time.Second)
+	client := http.Client{
+		Timeout: timeout,
+	}
+	request, err := http.NewRequest(method, url, bytes.NewBuffer(parama))
+	request.Header.Set("Content-type", "application/json")
+
+	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
+}

--
Gitblit v1.8.0