From 94bcda3ef533ac0ab0f5c0786554a9efe4c27f4d Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 19 十二月 2019 13:37:13 +0800 Subject: [PATCH] add upgrade action,do nothing after patch upload --- service/SysService.go | 57 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 44 insertions(+), 13 deletions(-) diff --git a/service/SysService.go b/service/SysService.go index 4d6f5ea..b4a6bc6 100644 --- a/service/SysService.go +++ b/service/SysService.go @@ -3,6 +3,7 @@ import ( "basic.com/valib/logger.git" "bufio" + "errors" "fmt" "io/ioutil" "mime/multipart" @@ -75,12 +76,8 @@ dirFiles, _ := ioutil.ReadDir(fileTmpPath) if dirFiles != nil && len(dirFiles) == arg.TotalChunks { //琛ㄧず鎵�鏈夊垎鍧楅兘涓婁紶浜嗭紝闇�瑕乵erge - if sv.MergeChunks(fileTmpPath, mergedFilePath) { - if util.ZipCheck(mergedFilePath) { - if !updatePatch(arg.Identifier, subfix) { - return false - } - } + if !sv.MergeChunks(fileTmpPath, mergedFilePath) { + return false } } } @@ -146,18 +143,52 @@ if isComplete { if sv.MergeChunks(fileTmpPath,fileTmpPath + subfix) { logger.Debug("merge all chunks success,identifier:",MD5Str,"fileName:",arg.FileName) - if util.ZipCheck(fileTmpPath + subfix) { - if !updatePatch(arg.Identifier, subfix) { - return false - } - } else { - logger.Debug("not a valid zip file,path:",fileTmpPath+subfix) - } + } else { + return false } } return true } +//upgrade +func (sv SysService) Upgrade(identifier string,filename string) (bool,error) { + configPatchPath := "" + if config.Server.PatchPath != "" { + configPatchPath = config.Server.PatchPath + } else { + configPatchPath = "/opt/vasystem/patch" + } + index := strings.LastIndex(filename, ".") + if index < 0 { + return false,errors.New("闈炴硶鐨勫崌绾у帇缂╁寘鏂囦欢") + } + ext := filename[index:] + zipFilePath := configPatchPath + "/"+identifier+ext + if util.Exists(zipFilePath) { + //鏍¢獙md5 + strMd5, e := util.FileMd5(zipFilePath) + if e !=nil || strMd5 == "" { + return false,errors.New("鑾峰彇鍗囩骇鍘嬬缉鍖卪d5澶辫触") + } + if strMd5 == identifier { + if util.ZipCheck(zipFilePath + ext) { + if !updatePatch(identifier, ext) { + return false,errors.New("鎵ц鍗囩骇杩囩▼寮傚父") + } + return true,nil + } else { + logger.Debug("not a valid zip file,path:",zipFilePath+ext) + return false,errors.New("鍗囩骇绋嬪簭瑙e帇澶辫触锛岃纭畾涓婁紶鐨勮ˉ涓佹槸zip鏍煎紡") + } + } else { + logger.Debug("strMd5 is", strMd5,"identifier is",identifier,"not equal") + return false,errors.New("鏍¢獙鍗囩骇鏂囦欢澶辫触") + } + } else { + return false,errors.New("鍗囩骇鏂囦欢宸蹭涪澶憋紝璇烽噸鏂颁笂浼�") + } +} + //鏇存柊绯荤粺绋嬪簭 func updatePatch(identifier string, ext string) bool { configPatchPath := "" -- Gitblit v1.8.0