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/seaweedfsService.go | 438 +++++++++++++++++++++++++++--------------------------- 1 files changed, 219 insertions(+), 219 deletions(-) diff --git a/system-service/service/seaweedfsService.go b/system-service/service/seaweedfsService.go index 2b6e38b..6d99822 100644 --- a/system-service/service/seaweedfsService.go +++ b/system-service/service/seaweedfsService.go @@ -1,219 +1,219 @@ -package service - -import ( - "encoding/json" - "errors" - "fmt" - "strings" - "time" - "vamicro/config" - "vamicro/system-service/sys" - "vamicro/system-service/util" - - "basic.com/valib/logger.git" -) - -func InitSWFSNode(storePath []string, scriptPath string) (bool, error) { - for _, p := range storePath { - path := strings.Split(p, "/") - if len(path) >= 3 { - if strings.Contains(path[len(path)-2], "seaweedfs") == false && strings.Contains(path[len(path)-3], "seaweedfs") == false { - logger.Errorf("GetConfig InitSWFSNode 璺緞涓嶆纭� storePath=%v", storePath) - return false, errors.New(p + "璺緞涓嶆纭�") - } - ra := strings.Split(p, "seaweedfs") - util.CMDSC("find " + ra[0] + "seaweedfs" + " -type f -name '*' -exec rm -rf {} \\;") - } else { - logger.Errorf("GetConfig InitSWFSNode storePath=%v config 涓璙olumePath閰嶇疆閿欒,璇锋鏌�", storePath) - return false, errors.New("config 涓璙olumePath閰嶇疆閿欒,璇锋鏌�") - } - - } - util.SetConfig(scriptPath, "", []string{}, "000") - return true, nil -} - -func CreateWeedfsServer(scriptPath string) (bool, error) { - logger.Debug("CreateWeedfsServer:") - ip, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - peers := make([]string, 0) - peers = append(peers, ip+":6333") - _, err := util.VerifyServer(ip) - if err == nil { - sp := util.StopServer(scriptPath) - if sp == false { - return false, errors.New("stop scriptPath 璺緞閿欒锛�") - } - } - logger.Debug("GetConfig CreateWeedfsServer ip=%v, peers=%v", ip, peers) - sc := util.SetConfig(scriptPath, ip, peers, "000") - if sc == false { - return false, errors.New("binPath 璺緞閿欒锛�") - } - st := util.StartServer(scriptPath) - if st == false { - return false, errors.New("binPath 璺緞閿欒锛�") - } - 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 false, errors.New("鍚姩瓒呮椂") - } - } - return true, nil -} - -type WeedInfo struct { - ScriptPath string `json:"scriptPath"` - Peers []string `json:"peers"` - DefaultReplication string `json:"defaultReplication"` -} - -//storePath鏄痺eedfs鐨勬暟鎹矾寰勶紝榛樿鏄湪/data/disk2/seaweedfs -func AddWeedfsServer(scriptPath string, ip string, storePath []string) (bool, error) { - var errRet error - start := time.Now() - defer func(errRet error) { - logger.Debugf("AddCluster AddWeedfsServer finish time=%v, err=%v", time.Since(start), errRet) - }(errRet) - - localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - - _, errRet = InitSWFSNode(storePath, scriptPath) - if errRet != nil { - return false, errors.New("seaweedfs 鍒濆鍖栧け璐�") - } - - url := "http://" + ip + ":8888/data/api-v/swfs/getSWFSPeers" - body := `{"scriptPath":"` + scriptPath + `"}` - var buf []byte - buf, errRet = HttpRCT("POST", url, []byte(body), 10*time.Second) - if errRet != nil { - return false, errors.New("鑾峰彇peers鍒楄〃澶辫触") - } - var info interface{} - json.Unmarshal(buf, &info) - peers := info.(map[string]interface{})["data"].([]interface{}) - if len(peers) < 1 { - return false, errors.New("鎸囧畾ip涓嶅瓨鍦ㄩ泦缇�!") - } - for _, pc := range peers { - if strings.Contains(pc.(string), localIp) == true { - logger.Errorf("AddCluster AddWeedfsServer localIp=%v, pc=%v, peers=%v 璇ヨ妭鐐瑰凡缁忓湪鐩爣闆嗙兢", localIp, pc.(string), peers) - return false, errors.New("璇ヨ妭鐐瑰凡缁忓湪鐩爣闆嗙兢") - } - } - peers = append(peers, localIp+":6333") - pArray := make([]string, 0) - for _, p := range peers { - sData := strings.Split(p.(string), ":") - pArray = append(pArray, fmt.Sprintf("%v:%v", sData[0], sData[1])) - } - - for _, pick := range peers { - mIp := strings.Split(pick.(string), ":")[0] - url := "http://" + mIp + ":8888/data/api-v/swfs/syncSWFSNode" - - dataBody := WeedInfo{ - ScriptPath: scriptPath, - Peers: pArray, - DefaultReplication: "001", - } - srcData, _ := json.Marshal(dataBody) - - // body := `{"scriptPath":"` + scriptPath + `", - // "peers":["` + strings.Replace(strings.Trim(fmt.Sprint(peers), "[]"), " ", "\",\"", -1) + `"], - // "defaultReplication":"001"}` - logger.Debugf("AddCluster AddWeedfsServer url=%v, srcData=%v", url, string(srcData)) - if _, errRet = HttpRCT("POST", url, srcData, 30*time.Second); errRet != nil { - return false, errors.New(mIp + "鑺傜偣淇敼澶辫触") - } - } - - logger.Debug("AddCluster AddWeedfsServer success ip=%v, errRet=%v", ip, errRet) - return true, errRet -} - -func ExitWeedfsServer(scriptPath string, isDel bool, storePath []string) (bool, error) { - var errRet error - start := time.Now() - defer func(errRet error) { - logger.Debugf("Leave ExitWeedfsServer finish time=%v, err=%v", time.Since(start), errRet) - }(errRet) - - localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) - var configInfo util.SWFSInfo - configInfo, errRet = util.GetConfig(scriptPath) - logger.Debugf("Leave ExitWeedfsServer GetConfig=%v, localIp=%v, err=%v", configInfo, localIp, errRet) - if errRet != nil { - return false, errRet - } - if len(configInfo.Peers) == 0 { - logger.Debug("Leave ExitWeedfsServer 褰撳墠鑺傜偣鏈娇鐢ㄦ棤椤婚��鍑�") - return true, nil - } - newPeers := make([]string, 0) - for _, p := range configInfo.Peers { - if strings.Split(p, ":")[0] == localIp { - continue - } - newPeers = append(newPeers, p) - } - defaultReplication := "001" - if len(newPeers) <= 1 { - defaultReplication = "000" - } - - logger.Debug("ExitWeedfsServer newPeers:", newPeers) - for _, pick := range newPeers { - logger.Debug("Leave ExitWeedfsServer pick:", pick) - mIp := strings.Split(pick, ":")[0] - url := "http://" + mIp + ":8888/data/api-v/swfs/syncSWFSNode" - - dataBody := WeedInfo{ - ScriptPath: scriptPath, - Peers: newPeers, - DefaultReplication: defaultReplication, - } - srcData, _ := json.Marshal(dataBody) - - // body := `{"scriptPath":"` + scriptPath + `", - // "peers":["` + strings.Replace(strings.Trim(fmt.Sprint(newPeers), "[]"), " ", "\",\"", -1) + `"], - // "defaultReplication":"` + defaultReplication + `"}` - _, errRet = HttpRCT("POST", url, srcData, 30*time.Second) - logger.Debugf("Leave ExitWeedfsServer HttpRCT url=%v, srcData=%v, errRet=%v", url, string(srcData), errRet) - if errRet != nil { - return false, errors.New(mIp + "鑺傜偣淇敼澶辫触") - } - } - - sc := util.SetConfig(scriptPath, "", []string{}, defaultReplication) - if sc == false { - return false, errors.New("scriptPath 璺緞閿欒锛�") - } - - if _, errRet = util.VerifyServer(localIp); errRet == nil { - sp := util.StopServer(scriptPath) - logger.Debugf("Leave ExitWeedfsServer StopServer sp=%v", sp) - if sp == false { - return false, errors.New("stop scriptPath 璺緞閿欒锛�") - } - } - if isDel == true { - for _, p := range storePath { - path := strings.Split(p, "/") - if strings.Contains(path[len(path)-1], "seaweedfs") == false && strings.Contains(path[len(path)-2], "seaweedfs") == false { - logger.Errorf("Leave ExitWeedfsServer storePath=%v 璺緞涓嶆纭� ", storePath) - return false, errors.New(p + "璺緞涓嶆纭�") - } - ra := strings.Split(p, "seaweedfs") - - util.CMDSC("find " + ra[0] + "seaweedfs" + " -type f -name '*' -exec rm -rf {} \\;") - } - } - logger.Debugf("Leave ExitWeedfsServer success errRet=%v", errRet) - return true, errRet -} +package service + +import ( + "encoding/json" + "errors" + "fmt" + "strings" + "time" + "vamicro/config" + "vamicro/system-service/sys" + "vamicro/system-service/util" + + "basic.com/valib/logger.git" +) + +func InitSWFSNode(storePath []string, scriptPath string) (bool, error) { + for _, p := range storePath { + path := strings.Split(p, "/") + if len(path) >= 3 { + if strings.Contains(path[len(path)-2], "seaweedfs") == false && strings.Contains(path[len(path)-3], "seaweedfs") == false { + logger.Errorf("GetConfig InitSWFSNode 璺緞涓嶆纭� storePath=%v", storePath) + return false, errors.New(p + "璺緞涓嶆纭�") + } + ra := strings.Split(p, "seaweedfs") + util.CMDSC("find " + ra[0] + "seaweedfs" + " -type f -name '*' -exec rm -rf {} \\;") + } else { + logger.Errorf("GetConfig InitSWFSNode storePath=%v config 涓璙olumePath閰嶇疆閿欒,璇锋鏌�", storePath) + return false, errors.New("config 涓璙olumePath閰嶇疆閿欒,璇锋鏌�") + } + + } + util.SetConfig(scriptPath, "", []string{}, "000") + return true, nil +} + +func CreateWeedfsServer(scriptPath string) (bool, error) { + logger.Debug("CreateWeedfsServer:") + ip, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + peers := make([]string, 0) + peers = append(peers, ip+":6333") + _, err := util.VerifyServer(ip) + if err == nil { + sp := util.StopServer(scriptPath) + if sp == false { + return false, errors.New("stop scriptPath 璺緞閿欒锛�") + } + } + logger.Debug("GetConfig CreateWeedfsServer ip=%v, peers=%v", ip, peers) + sc := util.SetConfig(scriptPath, ip, peers, "000") + if sc == false { + return false, errors.New("binPath 璺緞閿欒锛�") + } + st := util.StartServer(scriptPath) + if st == false { + return false, errors.New("binPath 璺緞閿欒锛�") + } + 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 false, errors.New("鍚姩瓒呮椂") + } + } + return true, nil +} + +type WeedInfo struct { + ScriptPath string `json:"scriptPath"` + Peers []string `json:"peers"` + DefaultReplication string `json:"defaultReplication"` +} + +//storePath鏄痺eedfs鐨勬暟鎹矾寰勶紝榛樿鏄湪/data/disk2/seaweedfs +func AddWeedfsServer(scriptPath string, ip string, storePath []string) (bool, error) { + var errRet error + start := time.Now() + defer func(errRet error) { + logger.Debugf("AddCluster AddWeedfsServer finish time=%v, err=%v", time.Since(start), errRet) + }(errRet) + + localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + + _, errRet = InitSWFSNode(storePath, scriptPath) + if errRet != nil { + return false, errors.New("seaweedfs 鍒濆鍖栧け璐�") + } + + url := "http://" + ip + ":8888/data/api-v/swfs/getSWFSPeers" + body := `{"scriptPath":"` + scriptPath + `"}` + var buf []byte + buf, errRet = HttpRCT("POST", url, []byte(body), 10*time.Second) + if errRet != nil { + return false, errors.New("鑾峰彇peers鍒楄〃澶辫触") + } + var info interface{} + json.Unmarshal(buf, &info) + peers := info.(map[string]interface{})["data"].([]interface{}) + if len(peers) < 1 { + return false, errors.New("鎸囧畾ip涓嶅瓨鍦ㄩ泦缇�!") + } + for _, pc := range peers { + if strings.Contains(pc.(string), localIp) == true { + logger.Errorf("AddCluster AddWeedfsServer localIp=%v, pc=%v, peers=%v 璇ヨ妭鐐瑰凡缁忓湪鐩爣闆嗙兢", localIp, pc.(string), peers) + return false, errors.New("璇ヨ妭鐐瑰凡缁忓湪鐩爣闆嗙兢") + } + } + peers = append(peers, localIp+":6333") + pArray := make([]string, 0) + for _, p := range peers { + sData := strings.Split(p.(string), ":") + pArray = append(pArray, fmt.Sprintf("%v:%v", sData[0], sData[1])) + } + + for _, pick := range peers { + mIp := strings.Split(pick.(string), ":")[0] + url := "http://" + mIp + ":8888/data/api-v/swfs/syncSWFSNode" + + dataBody := WeedInfo{ + ScriptPath: scriptPath, + Peers: pArray, + DefaultReplication: "001", + } + srcData, _ := json.Marshal(dataBody) + + // body := `{"scriptPath":"` + scriptPath + `", + // "peers":["` + strings.Replace(strings.Trim(fmt.Sprint(peers), "[]"), " ", "\",\"", -1) + `"], + // "defaultReplication":"001"}` + logger.Debugf("AddCluster AddWeedfsServer url=%v, srcData=%v", url, string(srcData)) + if _, errRet = HttpRCT("POST", url, srcData, 30*time.Second); errRet != nil { + return false, errors.New(mIp + "鑺傜偣淇敼澶辫触") + } + } + + logger.Debug("AddCluster AddWeedfsServer success ip=%v, errRet=%v", ip, errRet) + return true, errRet +} + +func ExitWeedfsServer(scriptPath string, isDel bool, storePath []string) (bool, error) { + var errRet error + start := time.Now() + defer func(errRet error) { + logger.Debugf("Leave ExitWeedfsServer finish time=%v, err=%v", time.Since(start), errRet) + }(errRet) + + localIp, _, _ := sys.GetLocalIP(config.Server.NetworkAdapter) + var configInfo util.SWFSInfo + configInfo, errRet = util.GetConfig(scriptPath) + logger.Debugf("Leave ExitWeedfsServer GetConfig=%v, localIp=%v, err=%v", configInfo, localIp, errRet) + if errRet != nil { + return false, errRet + } + if len(configInfo.Peers) == 0 { + logger.Debug("Leave ExitWeedfsServer 褰撳墠鑺傜偣鏈娇鐢ㄦ棤椤婚��鍑�") + return true, nil + } + newPeers := make([]string, 0) + for _, p := range configInfo.Peers { + if strings.Split(p, ":")[0] == localIp { + continue + } + newPeers = append(newPeers, p) + } + defaultReplication := "001" + if len(newPeers) <= 1 { + defaultReplication = "000" + } + + logger.Debug("ExitWeedfsServer newPeers:", newPeers) + for _, pick := range newPeers { + logger.Debug("Leave ExitWeedfsServer pick:", pick) + mIp := strings.Split(pick, ":")[0] + url := "http://" + mIp + ":8888/data/api-v/swfs/syncSWFSNode" + + dataBody := WeedInfo{ + ScriptPath: scriptPath, + Peers: newPeers, + DefaultReplication: defaultReplication, + } + srcData, _ := json.Marshal(dataBody) + + // body := `{"scriptPath":"` + scriptPath + `", + // "peers":["` + strings.Replace(strings.Trim(fmt.Sprint(newPeers), "[]"), " ", "\",\"", -1) + `"], + // "defaultReplication":"` + defaultReplication + `"}` + _, errRet = HttpRCT("POST", url, srcData, 30*time.Second) + logger.Debugf("Leave ExitWeedfsServer HttpRCT url=%v, srcData=%v, errRet=%v", url, string(srcData), errRet) + if errRet != nil { + return false, errors.New(mIp + "鑺傜偣淇敼澶辫触") + } + } + + sc := util.SetConfig(scriptPath, "", []string{}, defaultReplication) + if sc == false { + return false, errors.New("scriptPath 璺緞閿欒锛�") + } + + if _, errRet = util.VerifyServer(localIp); errRet == nil { + sp := util.StopServer(scriptPath) + logger.Debugf("Leave ExitWeedfsServer StopServer sp=%v", sp) + if sp == false { + return false, errors.New("stop scriptPath 璺緞閿欒锛�") + } + } + if isDel == true { + for _, p := range storePath { + path := strings.Split(p, "/") + if strings.Contains(path[len(path)-1], "seaweedfs") == false && strings.Contains(path[len(path)-2], "seaweedfs") == false { + logger.Errorf("Leave ExitWeedfsServer storePath=%v 璺緞涓嶆纭� ", storePath) + return false, errors.New(p + "璺緞涓嶆纭�") + } + ra := strings.Split(p, "seaweedfs") + + util.CMDSC("find " + ra[0] + "seaweedfs" + " -type f -name '*' -exec rm -rf {} \\;") + } + } + logger.Debugf("Leave ExitWeedfsServer success errRet=%v", errRet) + return true, errRet +} -- Gitblit v1.8.0