diff --git a/cve-vulner-manager/cve-py/controller/timertaskcontroller.py b/cve-vulner-manager/cve-py/controller/timertaskcontroller.py index c5d7e5cb5d3048efa6f805b6b59ed58808e90399..3ac113082b07fa6eaa7f51e91df39df6e7a462f5 100644 --- a/cve-vulner-manager/cve-py/controller/timertaskcontroller.py +++ b/cve-vulner-manager/cve-py/controller/timertaskcontroller.py @@ -46,7 +46,7 @@ def timertask(): # Parse the issue statistics recipient list # scheduler.add_job(taskcontroller.issue_statistics_email_task, 'cron', day_of_week='0-6', hour=5, minute=30) # Complete the template information of the issue with the data on the CVE official website - scheduler.add_job(taskcontroller.supplement_cve_task, 'interval', minutes=15) + scheduler.add_job(taskcontroller.supplement_cve_task, 'interval', minutes=20) scheduler.add_job(taskcontroller.long_supplement_cve_task, 'cron', day_of_week='0-6', hour=1, minute=30) # Parse the yaml file of mindspore scheduler.add_job(taskcontroller.parse_mindspore_yaml_task, 'cron', day_of_week='0-6', hour=3, minute=30) diff --git a/cve-vulner-manager/cve-py/dbConnecttion/Config.py b/cve-vulner-manager/cve-py/dbConnecttion/Config.py index 7053d1a7d2b1a701a229cbb22ba058d3773e31ac..58b677d6ca5830536281715761e324c7649e3c21 100644 --- a/cve-vulner-manager/cve-py/dbConnecttion/Config.py +++ b/cve-vulner-manager/cve-py/dbConnecttion/Config.py @@ -20,5 +20,5 @@ DBPORT = 3306 DBUSER = "cve" DBPWD = os.getenv("DB_PWDPY") DBNAME = "cvevulner" -#DBNAME = "oneline_cvevulner" +# DBNAME = "oneline_cvevulner" DBCHAR = "utf8" diff --git a/cve-vulner-manager/cve-py/tabletask/gauss_yaml.py b/cve-vulner-manager/cve-py/tabletask/gauss_yaml.py index 6ef3bce390a0d1c22c5384465bfaba7772935182..1bc8f7c1e7ab80c6141cc442f85d1316ad70db17 100644 --- a/cve-vulner-manager/cve-py/tabletask/gauss_yaml.py +++ b/cve-vulner-manager/cve-py/tabletask/gauss_yaml.py @@ -225,7 +225,7 @@ def delete_yaml_origin_data(mysql): """ Update origin data """ - delete_sql = "delete from cve_open_guss_yaml" + delete_sql = "truncate table cve_open_guss_yaml" mysql.delete(delete_sql) mysql.dispose() diff --git a/cve-vulner-manager/cve-py/tabletask/mindspore_yaml.py b/cve-vulner-manager/cve-py/tabletask/mindspore_yaml.py index 6988cd83b970e500e8e23a8b85fc733498ac4053..45450946c3076a6140010dd450bc042b20ec6ea8 100644 --- a/cve-vulner-manager/cve-py/tabletask/mindspore_yaml.py +++ b/cve-vulner-manager/cve-py/tabletask/mindspore_yaml.py @@ -179,7 +179,7 @@ def delete_yaml_origin_data(mysql): """ Update origin data """ - delete_sql = "delete from cve_mind_spore_yaml" + delete_sql = "truncate table cve_mind_spore_yaml" mysql.delete(delete_sql) mysql.dispose() diff --git a/cve-vulner-manager/main.go b/cve-vulner-manager/main.go index 0de241803ad1422dd5119f5cb5370eff83498aec..57e1b4e8035aa87403c783364467eed5527171e4 100644 --- a/cve-vulner-manager/main.go +++ b/cve-vulner-manager/main.go @@ -31,7 +31,6 @@ func main() { return } // single run - task.GetEulerYamlData() task.StartTask() if beego.BConfig.RunMode == "dev" { beego.BConfig.WebConfig.DirectoryIndex = true diff --git a/cve-vulner-manager/models/uploadcve.go b/cve-vulner-manager/models/uploadcve.go index 82293953e65407904a6a0ff5f318ba1811909634..5f68c69c9318c5415c6ef51a531128418fe145dc 100644 --- a/cve-vulner-manager/models/uploadcve.go +++ b/cve-vulner-manager/models/uploadcve.go @@ -3,8 +3,10 @@ package models import ( "cvevulner/common" "errors" + "fmt" "github.com/astaxie/beego/logs" "github.com/astaxie/beego/orm" + "strings" ) type OpenSaId struct { @@ -971,8 +973,30 @@ func QueryCveErrorInfo(issueStatus int8, startDate, endDate string) ([]IssueTemp func GetOpengaussYaml(opy *OpenGussYaml, colName ...string) error { o := orm.NewOrm() - err := o.Read(opy, colName...) - return err + packageName := opy.PackageName + if len(opy.PackageName) < 1 && len(opy.Version) < 1 { + logs.Error("openGauss request query parameters: ", *opy) + return errors.New("openGauss request query parameters error") + } + if len(opy.PackageName) > 1 && len(opy.Version) > 1 { + err := o.Raw("select * from cve_open_guss_yaml where package_name = ? and version = ? "+ + "order by id asc limit ?", opy.PackageName, opy.Version, 1).QueryRow(opy) + if err != nil { + opy.Repo = packageName + opy.Id = 1 + logs.Error("GetOpengaussYaml1, err: ", err, *opy) + } + return err + } else { + err := o.Raw("select * from cve_open_guss_yaml where package_name = ? "+ + "order by id asc limit ?", opy.PackageName, 1).QueryRow(opy) + if err != nil { + logs.Error("GetOpengaussYaml2, err: ", err, *opy) + opy.Repo = packageName + opy.Id = 1 + } + return err + } } func GetOpengaussYamlAll(opy *OpenGussYaml) (msy []OpenGussYaml, err error) { @@ -983,9 +1007,15 @@ func GetOpengaussYamlAll(opy *OpenGussYaml) (msy []OpenGussYaml, err error) { return msy, errors.New("openGauss request query parameters error") } if len(opy.PackageName) > 1 && len(opy.Version) > 1 { - verStr := "(" + opy.Version + ")" - num, err := o.Raw("select * from cve_open_guss_yaml where package_name = ? and version in ? group by repo_name"+ - "order by id asc", opy.PackageName, verStr).QueryRows(&msy) + verStr := "(" + verList := strings.Split(opy.Version, ",") + for _, ver := range verList { + verStr += "'" + ver + "'," + } + verStr = verStr[:len(verStr)-1] + ")" + sql := fmt.Sprintf(`select * from cve_open_guss_yaml where package_name = '%s' +and version in %s group by repo_name order by id asc`, opy.PackageName, verStr) + num, err := o.Raw(sql).QueryRows(&msy) if num == 0 { opy.Repo = packageName opy.Id = 1 @@ -1040,9 +1070,15 @@ func GetMindSporeYamlAll(opy *MindSporeYaml) (msy []MindSporeYaml, err error) { return msy, errors.New("Mindspore request query parameters error") } if len(opy.PackageName) > 1 && len(opy.Version) > 1 { - verStr := "(" + opy.Version + ")" - num, err := o.Raw("select * from cve_mind_spore_yaml where package_name = ? and version in ? group by repo_name"+ - "order by id asc", opy.PackageName, verStr).QueryRows(&msy) + verStr := "(" + verList := strings.Split(opy.Version, ",") + for _, ver := range verList { + verStr += "'" + ver + "'," + } + verStr = verStr[:len(verStr)-1] + ")" + sql := fmt.Sprintf(`select * from cve_mind_spore_yaml where package_name = '%s' +and version in %s group by repo_name order by id asc`, opy.PackageName, verStr) + num, err := o.Raw(sql).QueryRows(&msy) if num == 0 { opy.Repo = packageName opy.Id = 1 diff --git a/cve-vulner-manager/taskhandler/yaml.go b/cve-vulner-manager/taskhandler/yaml.go index cd797e7094c2ee540fc244cc68c546cf4aa2b916..a7d34cf64ddea4ec5b2463920e23c0fbf96885b7 100644 --- a/cve-vulner-manager/taskhandler/yaml.go +++ b/cve-vulner-manager/taskhandler/yaml.go @@ -424,7 +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() + models.TruncateOpenEulerRepoOrigin() for _, values := range respBody["data"].([]interface{}) { valuesX := values.(map[string]interface{}) ProcYamlInfo(valuesX)