merge: 合并OMC分支

This commit is contained in:
TsMask
2024-07-10 14:18:48 +08:00
parent 17c0011c6b
commit 625ed57a50
260 changed files with 9167 additions and 14857 deletions

View File

@@ -20,9 +20,9 @@ import (
)
const (
SoftwareStatusUploaded = "Uploaded"
SoftwareStatusInactive = "Inactive"
SoftwareStatusActive = "Active"
SoftwareStatusUploaded = "3"
SoftwareStatusInactive = "3"
SoftwareStatusActive = "1"
DigestsSignOkString = "digests signatures OK"
SoftwareVerifiedOk = "Verified OK"
)
@@ -213,6 +213,17 @@ func UploadSoftwareMultiFile(w http.ResponseWriter, r *http.Request) {
services.ResponseNotFound404UriNotExist(w, r)
return
}
sql := fmt.Sprintf("select * from ne_software where ne_type='%s' and version='%s'", neTypeUpper, version)
neSoftwareInfo, _ := dborm.XormGetDataBySQL(sql)
if len(*neSoftwareInfo) >= 1 {
services.ResponseWithJson(w, 200, map[string]any{
"code": 0,
"msg": "Software version already exists",
})
return
}
md5Param := services.GetUriParamString(r, "md5Sum", ",", false, false)
softwarePath := fmt.Sprintf("%s/%s", config.GetYamlConfig().OMC.Software, neTypeLower)
@@ -314,7 +325,7 @@ func UploadSoftwareMultiFile(w http.ResponseWriter, r *http.Request) {
result := verify_signature(config.GetYamlConfig().Auth.PublicKey, cmsFilePath, rpmFilePath)
log.Debug("result:", result.String())
if !strings.Contains(result.String(), SoftwareVerifiedOk) {
err := global.ErrCMNotMatchSignFile
err = global.ErrCMNotMatchSignFile
log.Error(err)
services.ResponseInternalServerError500ProcessError(w, err)
return
@@ -408,7 +419,7 @@ func DownloadSoftwareFile(w http.ResponseWriter, r *http.Request) {
return
}
fileName := (*neSoftware)[0]["file_name"]
fileName := (*neSoftware)[0]["name"]
path := (*neSoftware)[0]["path"]
md5Sum := (*neSoftware)[0]["md5_sum"]
@@ -462,7 +473,7 @@ func DeleteSoftwareFile(w http.ResponseWriter, r *http.Request) {
return
}
fileName := (*neSoftware)[0]["file_name"]
fileName := (*neSoftware)[0]["name"]
path := (*neSoftware)[0]["path"]
filePath := fmt.Sprintf("%s/%s", path, fileName)
err = os.Remove(filePath)
@@ -549,7 +560,7 @@ func DistributeSoftwareToNF(w http.ResponseWriter, r *http.Request) {
return
}
fileName := (*neSoftware)[0]["file_name"]
fileName := (*neSoftware)[0]["name"]
path := (*neSoftware)[0]["path"]
srcFile := fmt.Sprintf("%s/%s", path, fileName)
@@ -600,7 +611,7 @@ func DistributeSoftwareToNF(w http.ResponseWriter, r *http.Request) {
Version: (*neSoftware)[0]["version"],
FilePath: fmt.Sprintf("%s/software/%s/%s", config.GetYamlConfig().NE.OmcDir, neTypeLower, fileName),
PreVersion: (*neVersion)[0]["version"],
PreFile: (*neVersion)[0]["file_path"],
PreFile: (*neVersion)[0]["path"],
Status: SoftwareStatusInactive,
}
@@ -684,21 +695,29 @@ func ActiveSoftwareToNF(w http.ResponseWriter, r *http.Request) {
log.Trace("neVersion:", neVersion)
if !config.GetYamlConfig().OMC.TestMode {
filePath := (*neVersion)[0]["file_path"]
filePath := (*neVersion)[0]["path"]
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
srcFile := fmt.Sprintf("%s/actpkg.sh", config.GetYamlConfig().OMC.BinDir)
runCmd := fmt.Sprintf("sudo rm -f %s/actpkg.sh", config.GetYamlConfig().NE.ScpDir)
err = RunSSHCmd(sshHost, runCmd)
if err != nil {
log.Errorf("Failed to run cmd: %s", runCmd)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
srcFile := fmt.Sprintf("%s/actpkg.sh", config.GetYamlConfig().OMC.BinDir)
scpDir := fmt.Sprintf("%s@%s:%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.ScpDir)
cmd := exec.Command("scp", "-r", srcFile, scpDir)
_, err := cmd.CombinedOutput()
if err != nil {
log.Errorf("Faile to scp NF: neType=%s, neId=%s, ip=%s", neType, neId, neInfo.Ip)
log.Errorf("Failed to scp NF: neType=%s, neId=%s, ip=%s", neType, neId, neInfo.Ip)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
runCmd := fmt.Sprintf("sudo %s/actpkg.sh '%s' %s",
runCmd = fmt.Sprintf("sudo %s/actpkg.sh '%s' %s",
config.GetYamlConfig().NE.ScpDir, filePath, neTypeUpper)
if neTypeLower == "omc" {
idNeVersion, _ := strconv.Atoi((*neVersion)[0]["id"])
@@ -886,6 +905,14 @@ func RollBackSoftwareToNF(w http.ResponseWriter, r *http.Request) {
if !config.GetYamlConfig().OMC.TestMode {
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
runCmd := fmt.Sprintf("sudo rm -f %s/rbkpkg.sh", config.GetYamlConfig().NE.ScpDir)
err = RunSSHCmd(sshHost, runCmd)
if err != nil {
log.Errorf("Failed to run cmd: %s", runCmd)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
srcFile := fmt.Sprintf("%s/rbkpkg.sh", config.GetYamlConfig().OMC.BinDir)
scpDir := fmt.Sprintf("%s@%s:%s", config.GetYamlConfig().NE.User,
@@ -898,7 +925,7 @@ func RollBackSoftwareToNF(w http.ResponseWriter, r *http.Request) {
return
}
runCmd := fmt.Sprintf("sudo %s/rbkpkg.sh '%s' %s",
runCmd = fmt.Sprintf("sudo %s/rbkpkg.sh '%s' %s",
config.GetYamlConfig().NE.ScpDir, filePath, neTypeUpper)
if neTypeLower == "omc" {
idNeVersion, _ := strconv.Atoi((*neVersion)[0]["id"])
@@ -908,7 +935,7 @@ func RollBackSoftwareToNF(w http.ResponseWriter, r *http.Request) {
PreVersion: "-",
PreFile: "-",
NewVersion: (*neVersion)[0]["version"],
NewFile: (*neVersion)[0]["file_path"],
NewFile: (*neVersion)[0]["path"],
Status: SoftwareStatusActive,
}
@@ -919,7 +946,7 @@ func RollBackSoftwareToNF(w http.ResponseWriter, r *http.Request) {
return
}
services.ResponseStatusOK204NoContent(w)
RunSSHCmd(sshHost, runCmd)
go RunSSHCmd(sshHost, runCmd)
return
}
err = RunSSHCmd(sshHost, runCmd)
@@ -1010,7 +1037,7 @@ func RollBackSoftwareToNF(w http.ResponseWriter, r *http.Request) {
PreVersion: "-",
PreFile: "-",
NewVersion: (*neVersion)[0]["version"],
NewFile: (*neVersion)[0]["file_path"],
NewFile: (*neVersion)[0]["path"],
Status: SoftwareStatusActive,
}