From 87cebbc6481efd97d50ba4d9f665bf98fce5e8d6 Mon Sep 17 00:00:00 2001 From: zhangjianjun Date: Fri, 24 Sep 2021 18:16:31 +0800 Subject: [PATCH] Fixed the problem that multiple sources of openEuler's yaml data source were overwritten --- cve-vulner-manager/conf/app.conf | 2 +- cve-vulner-manager/main.go | 2 ++ cve-vulner-manager/models/ymal.go | 6 ++++++ cve-vulner-manager/task/yaml.go | 4 ++++ cve-vulner-manager/taskhandler/yaml.go | 3 ++- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/cve-vulner-manager/conf/app.conf b/cve-vulner-manager/conf/app.conf index 00799b9..ca7f12d 100644 --- a/cve-vulner-manager/conf/app.conf +++ b/cve-vulner-manager/conf/app.conf @@ -56,7 +56,7 @@ maxsize=204800 ymalflag = 2 getymal = 0 0 15 * * * eulerymalflag = 2 -eulergetymal = 0 24 17 * * * +eulergetymal = 0 53 17 * * * cveflag = 2 getcve = 0 40 15 * * * oricveflag = 2 diff --git a/cve-vulner-manager/main.go b/cve-vulner-manager/main.go index a944b67..0de2418 100644 --- a/cve-vulner-manager/main.go +++ b/cve-vulner-manager/main.go @@ -30,6 +30,8 @@ func main() { task.StopTask() return } + // single run + task.GetEulerYamlData() task.StartTask() if beego.BConfig.RunMode == "dev" { beego.BConfig.WebConfig.DirectoryIndex = true diff --git a/cve-vulner-manager/models/ymal.go b/cve-vulner-manager/models/ymal.go index d961ded..1b9bca1 100644 --- a/cve-vulner-manager/models/ymal.go +++ b/cve-vulner-manager/models/ymal.go @@ -331,3 +331,9 @@ func DelOpenEulerRepoOriginByName(packageName string) { _ = o.Raw("DELETE FROM cve_open_euler_repo_origin WHERE package_name = ?", packageName).QueryRow() return } + +func TruncateOpenEulerRepoOrigin() { + o := orm.NewOrm() + _ = o.Raw("TRUNCATE table cve_open_euler_repo_origin").QueryRow() + return +} diff --git a/cve-vulner-manager/task/yaml.go b/cve-vulner-manager/task/yaml.go index 7835ba2..0bd70f1 100644 --- a/cve-vulner-manager/task/yaml.go +++ b/cve-vulner-manager/task/yaml.go @@ -49,6 +49,10 @@ func GetEulerYamlData() error { return errors.New("eulerUrl value is nil") } _, err := taskhandler.GetEulerYamlInfo(eulerUrl) + // Synchronize other sources of yaml version + taskhandler.SyncEulerYaml() + // Delete historical yaml source version data that does not exist + taskhandler.DelHistoryEulerYaml() logs.Info("End of the task of obtaining euleryaml data source") return err } diff --git a/cve-vulner-manager/taskhandler/yaml.go b/cve-vulner-manager/taskhandler/yaml.go index b1512ac..cd797e7 100644 --- a/cve-vulner-manager/taskhandler/yaml.go +++ b/cve-vulner-manager/taskhandler/yaml.go @@ -424,6 +424,7 @@ func GetEulerYamlInfo(url string) (string, error) { return "", fmt.Errorf("Data is empty, url: %s", compUrl) } if respBody["code"].(float64) == 200 && respBody["total"].(float64) > 0 { + //models.TruncateOpenEulerRepoOrigin() for _, values := range respBody["data"].([]interface{}) { valuesX := values.(map[string]interface{}) ProcYamlInfo(valuesX) @@ -438,7 +439,7 @@ func ProcYamlInfo(valuesX map[string]interface{}) { for repKey, repValue := range valuesX { if repKey != "" && len(repKey) > 1 { //Delete all data first, then insert new data - models.DelOpenEulerRepoOriginByName(repKey) + //models.DelOpenEulerRepoOriginByName(repKey) value := repValue.(map[string]interface{}) brValue, brOk := value["branches"] if brOk { -- Gitee