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/service/esClusterService.go |  548 +++++++++++++++++++++++++++---------------------------
 1 files changed, 274 insertions(+), 274 deletions(-)

diff --git a/system-service/service/esClusterService.go b/system-service/service/esClusterService.go
index d874bcb..17320ab 100644
--- a/system-service/service/esClusterService.go
+++ b/system-service/service/esClusterService.go
@@ -1,274 +1,274 @@
-package service
-
-import (
-	"bytes"
-	"errors"
-	"fmt"
-	"io/ioutil"
-	"net/http"
-	"strings"
-	"time"
-	"vamicro/config"
-	"vamicro/system-service/models"
-	"vamicro/system-service/sys"
-	"vamicro/system-service/util"
-
-	"basic.com/pubsub/esutil.git"
-	"basic.com/valib/logger.git"
-)
-
-func InitEsNode(dataPath []string, configPath string) (bool, error) {
-	for _, dp := range dataPath {
-		path := strings.Split(dp, "/")
-		if strings.Contains(path[len(path)-1], "elasticsearch") == false && strings.Contains(path[len(path)-2], "elasticsearch") == false {
-			return false, errors.New(dp + "璺緞涓嶆纭�")
-		}
-		util.CMDSC("rm -rf " + dp + "/data " + dp + "/logs")
-	}
-	_, err := esutil.SetDiscoveryZenPingUnicastHosts(configPath, []string{})
-	if err != nil {
-		return false, err
-	}
-	return true, nil
-}
-
-//鍒涘缓闆嗙兢锛堝垵鍒涜妭鐐癸紝鍒濆鑺傜偣锛屼竴涓泦缇よ鍔熻兘鍙彲杩愯涓�娆★級
-//configPath: es鐨勯厤缃枃浠惰矾寰�,鐩墠榛樿涓�/opt/elasticsearch/config
-//binPath:  es鐨勮剼鏈矾寰勶紝鐩墠榛樿涓� /opt/vasystem/script
-//indexPath: 鐩墠榛樿涓� /opt/vasystem/indexInit
-func CreateOriginalCluster(configPath string, binPath string, indexPath string) (bool, error) {
-	verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter)
-	verPort := "9200"
-	sp := esutil.StopServer(binPath, "0.0.0.0", "9200")
-	if sp == true {
-		logger.Debug("binPath璺緞閿欒")
-		return false, errors.New("binPath璺緞閿欒")
-	}
-	_, errC := esutil.VerifyCreated(configPath)
-	if errC != nil {
-		logger.Debug("errC:", errC)
-		return false, errC
-	}
-	_, errI := esutil.InitYml(configPath)
-	if errI != nil {
-		logger.Debug("errI:", errI)
-		return false, errI
-	}
-	_, errR := esutil.UpdateNodeRole(configPath, "master")
-	if errR != nil {
-		logger.Debug("errR:", errR)
-		return false, errR
-	}
-
-	clusterName := GetClusterNameByVirtualIp(verIp)
-	logger.Debugf("CreateCluster clusterName=%v, verIp=%v", clusterName, verIp)
-	_, errCN := esutil.UpdateClusterName(configPath, clusterName)
-	if errCN != nil {
-		logger.Debug("errCN:", errCN)
-		return false, errCN
-	}
-
-	_, errS := esutil.SetDiscoveryZenPingUnicastHosts(configPath, []string{verIp})
-	if errS != nil {
-		logger.Debug("errS:", errS)
-		return false, errS
-	}
-	st := esutil.StartServer(binPath, verIp, verPort)
-	if st == false {
-		logger.Debug("binPath璺緞閿欒")
-		return false, errors.New("binPath璺緞閿欒")
-	}
-	result := esutil.VerifyNodeServer(verIp, verPort, 20)
-	if result == false {
-		logger.Debug("鏈嶅姟鍚姩瓒呮椂")
-		return false, errors.New("鏈嶅姟鍚姩瓒呮椂")
-	}
-	rIndexInit := esutil.InitIndex(indexPath)
-	if rIndexInit == false {
-		logger.Debug("绱㈠紩鍒濆鍖栧け璐�")
-		return false, errors.New("绱㈠紩鍒濆鍖栧け璐�")
-	}
-	return true, nil
-}
-
-func GetClusterNameByVirtualIp(ip string) string {
-	var clusterE = models.Cluster{
-		VirtualIp: ip,
-	}
-
-	clusterInfo, err := clusterE.FindByVirtualIp()
-	if err != nil {
-		logger.Debugf("GetClusterName FindByVirtualIp err=%v", err)
-		return clusterInfo.ClusterName
-	}
-	return clusterInfo.ClusterName
-}
-
-//鍔犲叆闆嗙兢锛堣鑺傜偣灏嗘牴鎹绠楀緱鍑鸿嚜宸遍渶瑕佹壆婕旂殑瑙掕壊锛� dataPath涓篹s鐨勬暟鎹矾寰勶紝榛樿鍦�/data/disk1/elasticsearch
-func AddCluster(configPath string, binPath string, ip string, port string, dataPath []string) (bool, error) {
-	var errRet error
-	start := time.Now()
-	defer func(errRet error) {
-		logger.Debugf("AddCluster finish time=%v, err=%v", time.Since(start), errRet)
-	}(errRet)
-
-	_, errRet = InitEsNode(dataPath, configPath)
-	if errRet != nil {
-		return false, errors.New("elasticsearch 鍒濆鍖栧け璐�")
-	}
-	verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter)
-	verPort := "9200"
-	localIp := verIp
-	localPort := verPort
-	sp := esutil.StopServer(binPath, localIp, localPort)
-	if sp == true {
-		logger.Debug("AddCluster binPath璺緞閿欒")
-		return false, errors.New("binPath璺緞閿欒")
-	}
-	LocalRole := "slave"
-	var nodesInfo []esutil.NodeInfo
-	nodesInfo, errRet = esutil.GetClusterInfo(ip, port)
-	if errRet != nil {
-		logger.Debug("errG:", errRet)
-		return false, errRet
-	}
-	TotalAllNodes := len(nodesInfo)
-	if TotalAllNodes < 1 {
-		logger.Debug("鐩爣闆嗙兢涓嶅瓨鍦�")
-		return false, errors.New("鐩爣闆嗙兢涓嶅瓨鍦�")
-	}
-	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)
-		for _, mpk := range allHosts {
-			url := "http://" + mpk + ":8888/data/api-v/es/node/synchronizeHosts"
-			body := `{
-			"binPath":"` + binPath + `",
-    		"configPath":"` + configPath + `",
-    		"hosts":["` + strings.Replace(strings.Trim(fmt.Sprint(hosts), "[]"), " ", "\",\"", -1) + `"]
-			}`
-			_, errRet := HttpRCT("POST", url, []byte(body), 10*time.Second)
-			logger.Debugf("AddCluster url=%v, mpk=%v, errRet=%v", url, mpk, errRet)
-			if errRet != nil {
-				return false, errors.New(mpk + "鑺傜偣鍚屾澶辫触")
-			}
-		}
-	}
-	_, errRet = esutil.UpdateNodeRole(configPath, LocalRole)
-	if errRet != nil {
-		logger.Debug("AddCluster errNR:", errRet)
-		return false, errRet
-	}
-
-	clusterName := GetClusterNameByVirtualIp(ip)
-	logger.Debugf("AddCluster clusterName=%v, ip=%v", clusterName, ip)
-	_, errRet = esutil.UpdateClusterName(configPath, clusterName)
-	if errRet != nil {
-		logger.Debug("AddCluster errCN:", errRet)
-		return false, errRet
-	}
-
-	_, errRet = esutil.SetDiscoveryZenPingUnicastHosts(configPath, hosts)
-	if errRet != nil {
-		logger.Debug("AddCluster errS:", errRet)
-		return false, errRet
-	}
-	st := esutil.StartServer(binPath, localIp, localPort)
-	if st == false {
-		logger.Debug("AddCluster 鏈嶅姟鍚姩瓒呮椂")
-		return false, errors.New("鏈嶅姟鍚姩瓒呮椂")
-	}
-	return true, errRet
-}
-
-//閫�鍑洪泦缇わ紙浠庡綋鍓嶉泦缇ら��鍑猴級
-func ExitCluster(configPath string, binPath string) (bool, error) {
-	var errRet error
-	start := time.Now()
-	defer func(errRet error) {
-		logger.Debugf("Leave ExitCluster finish time=%v, err=%v", time.Since(start), errRet)
-	}(errRet)
-
-	verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter)
-	verPort := "9200"
-	localIp := verIp
-	localPort := verPort
-	var hosts []string
-	if hosts, errRet = esutil.GetDiscoveryZenPingUnicastHosts(configPath); errRet != nil {
-		logger.Debug("Leave errH:", errRet)
-		return false, errRet
-	}
-	for _, p := range hosts {
-		if p == localIp {
-			logger.Debug("Leave 涓昏妭鐐逛笉鍏佽閫�鍑洪泦缇�")
-			return false, errors.New("涓昏妭鐐逛笉鍏佽閫�鍑洪泦缇�")
-		}
-	}
-
-	var bEN bool
-	if bEN, errRet = esutil.ExcludeNode(localIp, localPort); errRet != nil {
-		logger.Debug("Leave errEN:", errRet)
-		return false, errRet
-	}
-	sp := esutil.StopServer(binPath, localIp, localPort)
-	if sp == true {
-		logger.Debug("Leave binPath璺緞閿欒")
-		return false, errors.New("binPath璺緞閿欒")
-	}
-
-	if _, errRet = esutil.SetDiscoveryZenPingUnicastHosts(configPath, nil); errRet != nil {
-		logger.Debug("Leave errS:", errRet)
-		return false, errRet
-	}
-	return bEN, nil
-}
-
-func HttpRCT(method string, url string, parama []byte, timeout time.Duration) (buf []byte, err error) {
-	client := http.Client{
-		Timeout: timeout,
-	}
-	logger.Debugf("HttpRCT method=%v, url=%v, parama=%v", method, url, string(parama))
-	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 {
-		logger.Debug("build request err:", err)
-		return nil, err
-	}
-
-	resp, err := client.Do(request)
-	if err != nil {
-		logger.Debug("request error: ", err)
-		return nil, err
-	}
-
-	defer resp.Body.Close()
-	body, err := ioutil.ReadAll(resp.Body)
-	if err != nil {
-		logger.Debug("read body err:", err)
-		return nil, err
-	}
-	return body, nil
-}
+package service
+
+import (
+	"bytes"
+	"errors"
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"strings"
+	"time"
+	"vamicro/config"
+	"vamicro/system-service/models"
+	"vamicro/system-service/sys"
+	"vamicro/system-service/util"
+
+	"basic.com/pubsub/esutil.git"
+	"basic.com/valib/logger.git"
+)
+
+func InitEsNode(dataPath []string, configPath string) (bool, error) {
+	for _, dp := range dataPath {
+		path := strings.Split(dp, "/")
+		if strings.Contains(path[len(path)-1], "elasticsearch") == false && strings.Contains(path[len(path)-2], "elasticsearch") == false {
+			return false, errors.New(dp + "璺緞涓嶆纭�")
+		}
+		util.CMDSC("rm -rf " + dp + "/data " + dp + "/logs")
+	}
+	_, err := esutil.SetDiscoveryZenPingUnicastHosts(configPath, []string{})
+	if err != nil {
+		return false, err
+	}
+	return true, nil
+}
+
+//鍒涘缓闆嗙兢锛堝垵鍒涜妭鐐癸紝鍒濆鑺傜偣锛屼竴涓泦缇よ鍔熻兘鍙彲杩愯涓�娆★級
+//configPath: es鐨勯厤缃枃浠惰矾寰�,鐩墠榛樿涓�/opt/elasticsearch/config
+//binPath:  es鐨勮剼鏈矾寰勶紝鐩墠榛樿涓� /opt/vasystem/script
+//indexPath: 鐩墠榛樿涓� /opt/vasystem/indexInit
+func CreateOriginalCluster(configPath string, binPath string, indexPath string) (bool, error) {
+	verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter)
+	verPort := "9200"
+	sp := esutil.StopServer(binPath, "0.0.0.0", "9200")
+	if sp == true {
+		logger.Debug("binPath璺緞閿欒")
+		return false, errors.New("binPath璺緞閿欒")
+	}
+	_, errC := esutil.VerifyCreated(configPath)
+	if errC != nil {
+		logger.Debug("errC:", errC)
+		return false, errC
+	}
+	_, errI := esutil.InitYml(configPath)
+	if errI != nil {
+		logger.Debug("errI:", errI)
+		return false, errI
+	}
+	_, errR := esutil.UpdateNodeRole(configPath, "master")
+	if errR != nil {
+		logger.Debug("errR:", errR)
+		return false, errR
+	}
+
+	clusterName := GetClusterNameByVirtualIp(verIp)
+	logger.Debugf("CreateCluster clusterName=%v, verIp=%v", clusterName, verIp)
+	_, errCN := esutil.UpdateClusterName(configPath, clusterName)
+	if errCN != nil {
+		logger.Debug("errCN:", errCN)
+		return false, errCN
+	}
+
+	_, errS := esutil.SetDiscoveryZenPingUnicastHosts(configPath, []string{verIp})
+	if errS != nil {
+		logger.Debug("errS:", errS)
+		return false, errS
+	}
+	st := esutil.StartServer(binPath, verIp, verPort)
+	if st == false {
+		logger.Debug("binPath璺緞閿欒")
+		return false, errors.New("binPath璺緞閿欒")
+	}
+	result := esutil.VerifyNodeServer(verIp, verPort, 20)
+	if result == false {
+		logger.Debug("鏈嶅姟鍚姩瓒呮椂")
+		return false, errors.New("鏈嶅姟鍚姩瓒呮椂")
+	}
+	rIndexInit := esutil.InitIndex(indexPath)
+	if rIndexInit == false {
+		logger.Debug("绱㈠紩鍒濆鍖栧け璐�")
+		return false, errors.New("绱㈠紩鍒濆鍖栧け璐�")
+	}
+	return true, nil
+}
+
+func GetClusterNameByVirtualIp(ip string) string {
+	var clusterE = models.Cluster{
+		VirtualIp: ip,
+	}
+
+	clusterInfo, err := clusterE.FindByVirtualIp()
+	if err != nil {
+		logger.Debugf("GetClusterName FindByVirtualIp err=%v", err)
+		return clusterInfo.ClusterName
+	}
+	return clusterInfo.ClusterName
+}
+
+//鍔犲叆闆嗙兢锛堣鑺傜偣灏嗘牴鎹绠楀緱鍑鸿嚜宸遍渶瑕佹壆婕旂殑瑙掕壊锛� dataPath涓篹s鐨勬暟鎹矾寰勶紝榛樿鍦�/data/disk1/elasticsearch
+func AddCluster(configPath string, binPath string, ip string, port string, dataPath []string) (bool, error) {
+	var errRet error
+	start := time.Now()
+	defer func(errRet error) {
+		logger.Debugf("AddCluster finish time=%v, err=%v", time.Since(start), errRet)
+	}(errRet)
+
+	_, errRet = InitEsNode(dataPath, configPath)
+	if errRet != nil {
+		return false, errors.New("elasticsearch 鍒濆鍖栧け璐�")
+	}
+	verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter)
+	verPort := "9200"
+	localIp := verIp
+	localPort := verPort
+	sp := esutil.StopServer(binPath, localIp, localPort)
+	if sp == true {
+		logger.Debug("AddCluster binPath璺緞閿欒")
+		return false, errors.New("binPath璺緞閿欒")
+	}
+	LocalRole := "slave"
+	var nodesInfo []esutil.NodeInfo
+	nodesInfo, errRet = esutil.GetClusterInfo(ip, port)
+	if errRet != nil {
+		logger.Debug("errG:", errRet)
+		return false, errRet
+	}
+	TotalAllNodes := len(nodesInfo)
+	if TotalAllNodes < 1 {
+		logger.Debug("鐩爣闆嗙兢涓嶅瓨鍦�")
+		return false, errors.New("鐩爣闆嗙兢涓嶅瓨鍦�")
+	}
+	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)
+		for _, mpk := range allHosts {
+			url := "http://" + mpk + ":8888/data/api-v/es/node/synchronizeHosts"
+			body := `{
+			"binPath":"` + binPath + `",
+    		"configPath":"` + configPath + `",
+    		"hosts":["` + strings.Replace(strings.Trim(fmt.Sprint(hosts), "[]"), " ", "\",\"", -1) + `"]
+			}`
+			_, errRet := HttpRCT("POST", url, []byte(body), 10*time.Second)
+			logger.Debugf("AddCluster url=%v, mpk=%v, errRet=%v", url, mpk, errRet)
+			if errRet != nil {
+				return false, errors.New(mpk + "鑺傜偣鍚屾澶辫触")
+			}
+		}
+	}
+	_, errRet = esutil.UpdateNodeRole(configPath, LocalRole)
+	if errRet != nil {
+		logger.Debug("AddCluster errNR:", errRet)
+		return false, errRet
+	}
+
+	clusterName := GetClusterNameByVirtualIp(ip)
+	logger.Debugf("AddCluster clusterName=%v, ip=%v", clusterName, ip)
+	_, errRet = esutil.UpdateClusterName(configPath, clusterName)
+	if errRet != nil {
+		logger.Debug("AddCluster errCN:", errRet)
+		return false, errRet
+	}
+
+	_, errRet = esutil.SetDiscoveryZenPingUnicastHosts(configPath, hosts)
+	if errRet != nil {
+		logger.Debug("AddCluster errS:", errRet)
+		return false, errRet
+	}
+	st := esutil.StartServer(binPath, localIp, localPort)
+	if st == false {
+		logger.Debug("AddCluster 鏈嶅姟鍚姩瓒呮椂")
+		return false, errors.New("鏈嶅姟鍚姩瓒呮椂")
+	}
+	return true, errRet
+}
+
+//閫�鍑洪泦缇わ紙浠庡綋鍓嶉泦缇ら��鍑猴級
+func ExitCluster(configPath string, binPath string) (bool, error) {
+	var errRet error
+	start := time.Now()
+	defer func(errRet error) {
+		logger.Debugf("Leave ExitCluster finish time=%v, err=%v", time.Since(start), errRet)
+	}(errRet)
+
+	verIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter)
+	verPort := "9200"
+	localIp := verIp
+	localPort := verPort
+	var hosts []string
+	if hosts, errRet = esutil.GetDiscoveryZenPingUnicastHosts(configPath); errRet != nil {
+		logger.Debug("Leave errH:", errRet)
+		return false, errRet
+	}
+	for _, p := range hosts {
+		if p == localIp {
+			logger.Debug("Leave 涓昏妭鐐逛笉鍏佽閫�鍑洪泦缇�")
+			return false, errors.New("涓昏妭鐐逛笉鍏佽閫�鍑洪泦缇�")
+		}
+	}
+
+	var bEN bool
+	if bEN, errRet = esutil.ExcludeNode(localIp, localPort); errRet != nil {
+		logger.Debug("Leave errEN:", errRet)
+		return false, errRet
+	}
+	sp := esutil.StopServer(binPath, localIp, localPort)
+	if sp == true {
+		logger.Debug("Leave binPath璺緞閿欒")
+		return false, errors.New("binPath璺緞閿欒")
+	}
+
+	if _, errRet = esutil.SetDiscoveryZenPingUnicastHosts(configPath, nil); errRet != nil {
+		logger.Debug("Leave errS:", errRet)
+		return false, errRet
+	}
+	return bEN, nil
+}
+
+func HttpRCT(method string, url string, parama []byte, timeout time.Duration) (buf []byte, err error) {
+	client := http.Client{
+		Timeout: timeout,
+	}
+	logger.Debugf("HttpRCT method=%v, url=%v, parama=%v", method, url, string(parama))
+	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 {
+		logger.Debug("build request err:", err)
+		return nil, err
+	}
+
+	resp, err := client.Do(request)
+	if err != nil {
+		logger.Debug("request error: ", err)
+		return nil, err
+	}
+
+	defer resp.Body.Close()
+	body, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		logger.Debug("read body err:", err)
+		return nil, err
+	}
+	return body, nil
+}

--
Gitblit v1.8.0