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