From 9d88c7c467f8d93af4aab9ba0b6d6c01c2ffc546 Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期四, 20 八月 2020 20:35:30 +0800 Subject: [PATCH] add get buckets contrl --- service/SdkInstall.go | 160 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 130 insertions(+), 30 deletions(-) diff --git a/service/SdkInstall.go b/service/SdkInstall.go index 83c4f1e..b0ed7f6 100644 --- a/service/SdkInstall.go +++ b/service/SdkInstall.go @@ -22,16 +22,17 @@ } -func (sv SdkInstallService) Active(cod string) error { +func (sv SdkInstallService) Active(cod string, sdkId string) (interface{},error) { //浣跨敤婵�娲荤爜婵�娲荤畻娉� url := "http://"+config.ShopConf.Url+"/data/api-s/sdk/activeByAINode" machineCode := licence.GetMachineCode() if machineCode == "" { logger.Debug("鑾峰彇鏈哄櫒鐮佸け璐�") - return errors.New("鑾峰彇鏈哄櫒鐮佸け璐�") + return nil, errors.New("鑾峰彇鏈哄櫒鐮佸け璐�") } paramBody := map[string]interface{}{ "code": cod, + "sdkId": sdkId, "machineCode": machineCode, } header := map[string]string { @@ -40,19 +41,19 @@ respBody, err := reqUtil.DoPostRequest(url, reqUtil.CONTENT_TYPE_JSON, paramBody, nil, header) if err != nil { logger.Debug("DoPostRequest err:", err) - return err + return nil, err } var res dbapi.Result if err = json.Unmarshal(respBody, &res); err != nil { logger.Debug("unmarshal err:", err) - return err + return nil, err } if !res.Success { logger.Debug("res.Data:", res.Data) - return errors.New("璇锋眰鍟嗗煄澶辫触") + return nil, errors.New("璇锋眰鍟嗗煄澶辫触") } - return nil + return res.Data, nil } //绠楁硶瀹夎鍖呭畨瑁� @@ -104,6 +105,107 @@ } } +//瑙e帇涓婁紶鐨勭畻娉曞畨瑁呭寘 +func unPackPatchPackage(identifier string, ext string) (bool,error) { + configPatchPath := "" + if config.Server.PatchPath != "" { + configPatchPath = config.Server.PatchPath + } else { + configPatchPath = "../patch" + } + //1.瑙e帇缂╂洿鏂板寘 + unPackTargetPath := configPatchPath+"/"+identifier+"_basic/" + unPackFilePath := configPatchPath+"/"+identifier+ext + + if util.Exists(unPackTargetPath) { + //姝ょ増鏈凡缁忔洿鏂拌繃 + rmErr := os.RemoveAll(unPackTargetPath) + if rmErr !=nil { + return false,rmErr + } + } + if !util.CreateDirectory(unPackTargetPath) { + return false, errors.New("鍒涘缓鍘嬬缉鏂囦欢澶瑰け璐�") + } + logger.Debug("unPackFilePath:", unPackFilePath, "unPackPath:", unPackTargetPath) + _,err := util.UnTarGzByCmd(unPackFilePath, unPackTargetPath) + if err !=nil { + logger.Debug("UnPack err:",err,"unPackFile:",unPackFilePath) + return false, err + } + return true, nil +} + +func (sv SdkInstallService) ShowInstallInfo(identifier string, filename string) (bool, map[string]interface{}, error) { + configPatchPath := "" + if config.Server.PatchPath != "" { + configPatchPath = config.Server.PatchPath + } else { + configPatchPath = "../patch" + } + unPackTargetPath := configPatchPath+"/"+identifier+"_basic/" + isValid := false + defer func() { + if !isValid { + filenameWithSuffix := path.Base(filename) + ext := path.Ext(filenameWithSuffix) + unPackFilePath := configPatchPath+"/"+identifier+ext + md5DirPath := configPatchPath+"/"+identifier + + if util.Exists(unPackTargetPath) { + os.RemoveAll(unPackTargetPath) + } + if util.Exists(unPackFilePath) { + os.RemoveAll(unPackFilePath) + } + if util.DirExists(md5DirPath) { + go os.RemoveAll(md5DirPath) + } + + } + }() + if util.Exists(unPackTargetPath) { + targetFileName := "" + err := filepath.Walk(unPackTargetPath, func(path string, f os.FileInfo, err error) error { + if f == nil { + return err + } + if f.IsDir() { + targetFileName = f.Name() + } + return nil + }) + if err != nil { + return isValid, nil, errors.New("闈炴硶鐨勫畨瑁呭寘") + } else { + unPackPath := unPackTargetPath + targetFileName +"/" + //瑙e帇瀹屾垚锛岃幏鍙栧畨瑁呭寘涓殑鏂囦欢锛屽紑濮嬪畨瑁� + //1.瑙f瀽瀹夎璇存槑ins.inc + incPath := unPackPath+"ins.inc" + if util.Exists(incPath) { + if incB, err := ioutil.ReadFile(incPath); err == nil { + var ins InsInc + if err = json.Unmarshal(incB, &ins); err == nil { + return true, map[string]interface{} { + "sdkName": ins.ProductName, + "installVersion": ins.InstallVersion, + "installContent": ins.InstallContent, + }, nil + } else { + return false, nil, errors.New("闈炴硶鐨勫畨瑁呭寘") + } + } else { + return false, nil, errors.New("闈炴硶鐨勫畨瑁呭寘") + } + } else { + return false, nil, errors.New("闈炴硶鐨勫畨瑁呭寘") + } + } + } else { + return isValid, nil, errors.New("瀹夎鍖呭凡涓嶅瓨鍦�") + } +} + //瀹夎sdk func installSdk(identifier string, ext string) (bool, error) { configPatchPath := "" @@ -128,25 +230,12 @@ } }() - if util.Exists(unPackTargetPath) { - //姝ょ増鏈凡缁忔洿鏂拌繃 - rmErr := os.RemoveAll(unPackTargetPath) - if rmErr !=nil { - return false,rmErr - } - } - if !util.CreateDirectory(unPackTargetPath) { - return false, errors.New("鍒涘缓鍘嬬缉鏂囦欢澶瑰け璐�") + if !util.Exists(unPackTargetPath) {//瀹夎鍖呬笉瀛樺湪 + return false, errors.New("瀹夎鏂囦欢宸蹭笉瀛樺湪") } - logger.Debug("unPackFilePath:", unPackFilePath, "unPackPath:", unPackTargetPath) - _,err := util.UnTarGzByCmd(unPackFilePath, unPackTargetPath) - if err !=nil { - logger.Debug("UnPack err:",err,"unPackFile:",unPackFilePath) - return false, err - } targetFileName := "" - err = filepath.Walk(unPackTargetPath, func(path string, f os.FileInfo, err error) error { + err := filepath.Walk(unPackTargetPath, func(path string, f os.FileInfo, err error) error { if f == nil { return err } @@ -159,6 +248,9 @@ return false, err } unPackPath := unPackTargetPath + targetFileName +"/" + if !util.Exists(unPackPath) { + return false, errors.New("瀹夎鏂囦欢宸蹭笉瀛樺湪") + } //瑙e帇瀹屾垚锛岃幏鍙栧畨瑁呭寘涓殑鏂囦欢锛屽紑濮嬪畨瑁� //1.瑙f瀽瀹夎璇存槑ins.inc incPath := unPackPath+"ins.inc" @@ -196,7 +288,7 @@ sdkVersion, ok := sm["version"] if ok { //鏈夌増鏈彿 vStr := sdkVersion.(string) - if shouldVersionBeUpgrade(vStr, skd.Def.Version) { + if shouldVersionBeUpgrade(vStr, skd.Def.Version) { //姣斿鐗堟湰鍙风‘瀹氭槸鍚﹂渶瑕佸畨瑁� nInsM[skd.Def.SdkType] = skd.Def.SdkType aInsM[skd.Def.Id] = skd.Def.Id } @@ -279,24 +371,28 @@ logger.Debug("upper version has been installed") } } - } else { - return false, errors.New("鍙嶅簭鍒楀寲绠楁硶瀹氫箟淇℃伅澶辫触") + logger.Debug("鍙嶅簭鍒楀寲绠楁硶瀹氫箟淇℃伅澶辫触") + return false, errors.New("閿欒鐨勫畨瑁呭寘") } } else { - return false, errors.New("璇诲彇绠楁硶瀹氫箟淇℃伅澶辫触") + logger.Debug("璇诲彇绠楁硶瀹氫箟淇℃伅澶辫触") + return false, errors.New("閿欒鐨勫畨瑁呭寘") } } else { - return false, errors.New("绠楁硶瀹氫箟淇℃伅涓㈠け") + logger.Debug("绠楁硶瀹氫箟淇℃伅涓㈠け") + return false, errors.New("閿欒鐨勫畨瑁呭寘") } } else { - return false, errors.New("鍙嶅簭鍒楀寲鎺堟潈淇℃伅澶辫触") + logger.Debug("鍙嶅簭鍒楀寲鎺堟潈淇℃伅澶辫触") + return false, errors.New("閿欒鐨勫畨瑁呭寘") } } else { - return false, errors.New("璇诲彇鎺堟潈鏂囦欢澶辫触") + logger.Debug("璇诲彇鎺堟潈鏂囦欢澶辫触") + return false, errors.New("閿欒鐨勫畨瑁呭寘") } } else { - return false, errors.New("鎺堟潈鏂囦欢涓嶅瓨鍦�") + return false, errors.New("閿欒鐨勫畨瑁呭寘") } return true, nil @@ -357,6 +453,10 @@ ChCount int `json:"chCount"` AuthCount int `json:"authCount"` ServeYear int `json:"serveYear"` + + ProductName string `json:"productName"` + InstallVersion string `json:"installVersion"` + InstallContent string `json:"installContent"` } //绠楁硶鍜屽弬鏁板畾涔� -- Gitblit v1.8.0