diff --git a/conf/product_app.conf b/conf/product_app.conf index 7b41002f8395bda696d0ef05cf7aa3debff1c127..588397f838bd843a823c893bfd51d7ec1f63ab38 100644 --- a/conf/product_app.conf +++ b/conf/product_app.conf @@ -67,7 +67,7 @@ printlogflag = 1 printlog = 0 0 1 * * 2,6 unlockflag = 1 unlock = 0 0 12 * * * -hookflag = 2 +hookflag = 1 prochook = 0 1 8 * * * createhookflag = 2 createhook = 0 20 2 * * * diff --git a/controllers/hook.go b/controllers/hook.go index 28f1098cfdbdf1d19a56fd05b550207bc6c83c6a..69d3c410d56ece7c709076aea5e5cbeb107b9f89 100644 --- a/controllers/hook.go +++ b/controllers/hook.go @@ -125,7 +125,6 @@ func (c *HookEventControllers) isLegitimateHookEvent() (ok bool) { } func (c *HookEventControllers) handleNoteDate() { - logs.Info(string(c.Ctx.Input.RequestBody)) var hookNote models.CommentPayload err := json.Unmarshal(c.Ctx.Input.RequestBody, &hookNote) if err != nil { diff --git a/cve-py/issue_statistics/to_email.xlsx b/cve-py/issue_statistics/to_email.xlsx index 9575d691e239b399e5aebc2902998f8554c91e7e..c10b7f65b2a36e069dd944ad66faedcb13260553 100644 Binary files a/cve-py/issue_statistics/to_email.xlsx and b/cve-py/issue_statistics/to_email.xlsx differ diff --git a/models/cve.go b/models/cve.go index 013108af608883da7eceac6ba2acdfb514e768f6..f04d30bf000097faf0bcf90b329c9dc904a07fc1 100644 --- a/models/cve.go +++ b/models/cve.go @@ -927,7 +927,7 @@ ON b.cve_id = e.cve_id } //GetCanExportExcelData Get exportable data -func GetCanExportExcelData(cveNum, issueNum string) (list []ExcelExport, err error) { +func GetCanExportExcelData(cveNum, issueNum, repo string) (list []ExcelExport, err error) { if cveNum == "" { return list, errors.New("cve number can not empty") } @@ -937,9 +937,9 @@ d.affect_product,d.reference_link,d.affect_status, e.public_date,e.openeuler_sa_num,a.cve_level,b.organizate_id FROM cve_issue_template a RIGHT JOIN -(SELECT (SELECT COUNT(*) FROM cve_vuln_center WHERE cve_num = ? AND is_export in (0,3)) num , +(SELECT (SELECT COUNT(*) FROM cve_vuln_center WHERE cve_num = ? AND is_export in (0,3) AND pack_name = ?) num , bc.cve_id,bc.cve_num,bc.organizate_id -FROM cve_vuln_center bc WHERE bc.cve_num = ? AND bc.is_export in (0,3)) b +FROM cve_vuln_center bc WHERE bc.cve_num = ? AND bc.is_export in (0,3) AND bc.pack_name = ?) b ON a.cve_id = b.cve_id LEFT JOIN cve_score c ON b.cve_id = c.cve_id @@ -950,7 +950,7 @@ ON b.cve_id = e.cve_id WHERE a.issue_num = ? ` o := orm.NewOrm() - _, err = o.Raw(sql, cveNum, cveNum, issueNum).QueryRows(&list) + _, err = o.Raw(sql, cveNum, repo, cveNum, repo, issueNum).QueryRows(&list) return } diff --git a/taskhandler/cve.go b/taskhandler/cve.go index 6e515ad49ea0f5fe5fe5ea22d1df0649cbff614e..640d878237694863941ce7622d00409a8b8847f8 100644 --- a/taskhandler/cve.go +++ b/taskhandler/cve.go @@ -996,15 +996,14 @@ func GetCveOriginData(prcnum, days, openeulernum, credibilityLevel int, cveRef s for { osx, num, err := models.QueryOriginCve(beforeTime, prcnum, credibilityLevel) if err != nil || num == 0 { - logs.Info("当前无cve原始数据处理, err: ", err, - ", 处理时间范围: beforetime: ", beforeTime, + logs.Info("There is currently no cve raw data processing, err: ", err, + ", Processing time range > beforetime: ", beforeTime, "curtime: ", common.GetCurTime()) break } ch := make(chan int, len(osx)) for i, cveOrg := range osx { count = count + 1 - logs.Info("当前正常解析第: ", count, "条数据,i:", i, ", cvenum: ", cveOrg.Ids) // Add mutex lockOk := models.LockUpdateOriginStatus(common.GetCurTime(), cveOrg.PackName, cveOrg.Version, cveOrg.CveId, 15) @@ -1014,13 +1013,13 @@ func GetCveOriginData(prcnum, days, openeulernum, credibilityLevel int, cveRef s ch <- i continue } - go func(idx int, cveData models.OriginUpstream) { - ok, err := GenCveVuler(cveData, cveRef, openeulernum) + go func(idx int, cveData models.OriginUpstream, locOpenEulernum int, locCveRef string) { + ok, err := GenCveVuler(cveData, locCveRef, locOpenEulernum) if !ok { - logs.Error("GenCveVuler, cveData: ", cveData, "处理失败, err: ", err) + logs.Error("GenCveVuler, cveData: ", cveData, "Processing failed, err: ", err) } ch <- idx - }(i, cveOrg) + }(i, cveOrg, openeulernum, cveRef) } for i := 0; i < cap(ch); i++ { <-ch @@ -1059,13 +1058,13 @@ func GetCveOriginExcelData(prcnum, days, openeulerNum int, cveRef string) (bool, ch <- i continue } - go func(idx, manYears int, cveData models.OriginExcel) { - ok, err := SyncCveVuler(cveData, cveRef, openeulerNum, manYears) + go func(idx, manYears, locOpeneulerNum int, cveData models.OriginExcel, locCveRef string) { + ok, err := SyncCveVuler(cveData, locCveRef, openeulerNum, manYears) if !ok { logs.Error("SyncCveVuler, 处理失败, err: ", err, "cveData: ", cveData) } ch <- idx - }(i, manYears, cveOrg) + }(i, manYears, openeulerNum, cveOrg, cveRef) } for i := 0; i < cap(ch); i++ { <-ch @@ -1645,7 +1644,7 @@ func UpdateIssueCveGroups(cveData models.GiteOriginIssue, lop models.Loophole, c issueTemp.Status = 4 issueTemp.IssueStatus = 6 } - issueTemp.Owner = cveData.RepoPath + issueTemp.Owner = owner issueTemp.Repo = lop.Repo if cveData.Title != "" { issueTemp.Title = cveData.Title @@ -1909,14 +1908,14 @@ func GetCveIssueData(prcnum, days, openeulernum int, cveRef, owner string) (bool ch <- i continue } - go func(idx int, cveData models.GiteOriginIssue) { - ok, err := GenCveVulerByIssue(cveData, cveRef, openeulernum, owner) + go func(idx, openeulernum int, cveData models.GiteOriginIssue, locCveRef, locOwner string) { + ok, err := GenCveVulerByIssue(cveData, locCveRef, openeulernum, locOwner) if !ok { logs.Error("GenCveVulerByIssue, cveData: ", cveData, "处理失败, err: ", err) - models.UpdateCveIssueStatusById(3, cveOrg.Id) + models.UpdateCveIssueStatusById(3, cveData.Id) } ch <- idx - }(i, cveOrg) + }(i, openeulernum, cveOrg, cveRef, owner) } for i := 0; i < cap(ch); i++ { <-ch diff --git a/taskhandler/excel.go b/taskhandler/excel.go index 9c01d7bb29914d0c21640786733855d456c077b4..bf1a7d597f13f620b164ae2689ded98f0ac2da53 100644 --- a/taskhandler/excel.go +++ b/taskhandler/excel.go @@ -527,11 +527,16 @@ func (ec *CveExcel) handleWriteContentSync(list []models.ExcelExport, fillLock.Lock() ec.setContentRow(v, affectBranch, cvrfFileList, componentMap, cvfrFileMap) fillLock.Unlock() + fillLock.Lock() + BuildXml(cvexml, &v, securityNotice, packRpmx) + fillLock.Unlock() if v.Num == 1 { - fillLock.Lock() - BuildXml(cvexml, &v, securityNotice, packRpmx) - fillLock.Unlock() + //fillLock.Lock() + //BuildXml(cvexml, &v, securityNotice, packRpmx) + //fillLock.Unlock() + logs.Info("Num:1, info: ", v) } else if v.Num > 1 { + logs.Info("Num: ", v.Num, ", info: ", v) //处理CVE_NUM 重复 //1.根据cve_num 获取issue_tpl 如果所有的issue_status ==2 0r issue_status == 6 则可以导出数据 list, err := models.GetIssueTplByCveNum(v.CveNum) @@ -559,7 +564,7 @@ func (ec *CveExcel) handleWriteContentSync(list []models.ExcelExport, // Fill in the content of the xml file canExport1 := make([]models.ExcelExport, len(canExport)) copy(canExport1, canExport) - addXmlData(canExport1, cvexml, affectBranch, securityNotice, packRpmx) + //addXmlData(canExport1, cvexml, affectBranch, securityNotice, packRpmx) // Fill in the content of the excel file ep := canExport[0] ep.SecID = v.SecID @@ -1136,9 +1141,9 @@ func UnaffectIssueProc(affectBranch string, cvrfFileList map[string][]string, if len(data) > 0 { for _, v := range data { //save data to excel - el, err := models.GetCanExportExcelData(v.CveNum, v.IssueNum) + el, err := models.GetCanExportExcelData(v.CveNum, v.IssueNum, v.OwnedComponent) if err != nil { - logs.Error("GetCanExportExcelData, err: ", err, "tpl.CveNum, tpl.IssueNum: ", v.CveNum, v.IssueNum) + logs.Error("GetCanExportExcelData, err: ", err, "tpl.CveNum, tpl.IssueNum: ", v.CveNum, v.IssueNum, v.OwnedComponent) return } for _, vx := range el { @@ -1175,9 +1180,9 @@ func affectIssueProc(v IssueAndPkg, affectBranch string, cvexml *[]CveXml, continue } //save data to excel - el, err := models.GetCanExportExcelData(tpl.CveNum, tpl.IssueNum) + el, err := models.GetCanExportExcelData(tpl.CveNum, tpl.IssueNum, tpl.OwnedComponent) if err != nil { - logs.Error("GetCanExportExcelData, err: ", err, "tpl.CveNum, tpl.IssueNum: ", tpl.CveNum, tpl.IssueNum) + logs.Error("GetCanExportExcelData, err: ", err, "tpl.CveNum, tpl.IssueNum: ", tpl.CveNum, tpl.IssueNum, tpl.OwnedComponent) return } //logs.Info("el=======>", el) diff --git a/taskhandler/yaml.go b/taskhandler/yaml.go index 5b9ff8d884f791cb1d9d221de7042f5312cff40c..3206fafaddca8594be91f4397470e2298cf71d62 100644 --- a/taskhandler/yaml.go +++ b/taskhandler/yaml.go @@ -63,14 +63,14 @@ func GetYamlByGit(url string) (string, error) { var ch = make(chan int, len(gt)) for i, tableValue := range gt { logs.Info("查询第 ", i, "tableName: ", tableValue.TableName, "开始...") - go func(tv models.GitPackageTable, idx int) { - ok, err := GetYaml(url, compURL1, page, size, tv, &ch) + go func(tv models.GitPackageTable, idx, locPage, locSize int, locUrl, locCompURL1 string) { + ok, err := GetYaml(locUrl, locCompURL1, locPage, locSize, tv, &ch) if err == nil { logs.Info("当前数据处理成功,i: ", idx) } else { logs.Error("当前数据处理失败, ok: ", ok, ",i: ", idx, ", err: ", err) } - }(tableValue, i) + }(tableValue, i, page, size, url, compURL1) } for i := 0; i < len(gt); i++ { <-ch