From 244992ee8187576899cb21a07267e083e2c5b4bd Mon Sep 17 00:00:00 2001 From: sb Date: Wed, 31 Mar 2021 16:42:00 +0800 Subject: [PATCH] After the openGauss sa demo, the code is optimized --- common/common.go | 14 ++++++++++++++ conf/app.conf | 2 +- controllers/gauss.go | 3 +++ models/cve.go | 4 ++-- models/gauss.go | 5 +++-- models/modeldb.go | 2 +- taskhandler/excel.go | 12 ++++++------ taskhandler/gauss.go | 44 +++++++++++++++++++++++++++++++++----------- taskhandler/yaml.go | 14 ++++++++++---- 9 files changed, 73 insertions(+), 27 deletions(-) diff --git a/common/common.go b/common/common.go index 415f0c3..e0a5642 100644 --- a/common/common.go +++ b/common/common.go @@ -386,3 +386,17 @@ func CreateAllDir(dir string) error { } return err } + +func StrFirstToUpper(str string) string { + var upperStr string + vv := []rune(str) + for i := 0; i < len(vv); i++ { + if i == 0 { + vv[i] -= 32 + upperStr += string(vv[i]) // + string(vv[i+1]) + } else { + upperStr += string(vv[i]) + } + } + return upperStr +} \ No newline at end of file diff --git a/conf/app.conf b/conf/app.conf index 1445089..e07ce76 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -51,7 +51,7 @@ maxsize=204800 ymalflag = 2 getymal = 0 35 11 * * * eulerymalflag = 1 -eulergetymal = 0 4 15 * * * +eulergetymal = 0 42 16 * * * cveflag = 2 getcve = 0 14 11 * * * oricveflag = 2 diff --git a/controllers/gauss.go b/controllers/gauss.go index 74f45fd..ddac65c 100644 --- a/controllers/gauss.go +++ b/controllers/gauss.go @@ -10,6 +10,7 @@ import ( "github.com/astaxie/beego/logs" "os" "regexp" + "sort" "strings" ) @@ -75,6 +76,8 @@ func (g *GenSaController) TriggerCveData() { for _, fp := range fileData { branchVersion = append(branchVersion, fp.RepoVersion) } + // version, descending sort + sort.Sort(sort.Reverse(sort.StringSlice(branchVersion))) // Clear unaffected historical data taskhandler.ClearHisDataSa(1) // Generate unaffected cve data diff --git a/models/cve.go b/models/cve.go index 4f9c785..2eb9926 100644 --- a/models/cve.go +++ b/models/cve.go @@ -836,7 +836,7 @@ func GetVulnCenterByCid(cve *VulnCenter, field ...string) error { func GetCanExportVulnCenterData() (data []VulnCenter, err error) { o := orm.NewOrm() - sql := fmt.Sprintf(`SELECT * from cve_vuln_center WHERE is_export IN (0,2,3)`) + sql := fmt.Sprintf(`SELECT * from cve_vuln_center WHERE is_export IN (0,2,3) and organizate_id = 1`) _, err = o.Raw(sql).QueryRows(&data) logs.Info("GetCanExportVulnCenterData, err: ", err) return @@ -939,7 +939,7 @@ d.affect_product,d.reference_link,d.affect_status, e.public_date,e.openeuler_sa_num,a.cve_level,b.organizate_id,a.affected_version FROM cve_issue_template a RIGHT JOIN -(SELECT (SELECT COUNT(*) FROM cve_vuln_center WHERE cve_num = ? AND is_export in (0,3) AND pack_name = ? AND organizate_id = 1) num , +(SELECT (SELECT COUNT(*) FROM cve_vuln_center WHERE cve_num = ? AND is_export in (0,3) AND pack_name = ? AND organizate_id = 1) 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) AND bc.pack_name = ? AND bc.organizate_id = 1) b ON a.cve_id = b.cve_id diff --git a/models/gauss.go b/models/gauss.go index dfe241e..10c6a02 100644 --- a/models/gauss.go +++ b/models/gauss.go @@ -20,7 +20,8 @@ type GaussExcelTag struct { // Provide gauss related data and mysql interface layer processing logic func QueryDownloadFile(status int) (FileData []OpenGaussDownloadFile, err error) { o := orm.NewOrm() - sql := fmt.Sprintf(`SELECT * from cve_open_gauss_download_file WHERE status = %d`, status) + sql := fmt.Sprintf(`SELECT * from cve_open_gauss_download_file +WHERE status = %d order by repo_version desc`, status) _, err = o.Raw(sql).QueryRows(&FileData) logs.Info("QueryDownloadFile, err: ", err) return @@ -517,7 +518,7 @@ func QueryOpenGaussCveByNum(osl *OpenGaussCveList, field ...string) error { } func QueryGaussVersionByCid(cveId int64) (ogv []OpenGaussVersion, err error) { - sql := `select * from cve_open_gauss_version where cve_id = %d` + sql := `select * from cve_open_gauss_version where cve_id = %d order by repo_version desc` sql = fmt.Sprintf(sql, cveId) o := orm.NewOrm() num, err := o.Raw(sql).QueryRows(&ogv) diff --git a/models/modeldb.go b/models/modeldb.go index a7ea691..259726c 100644 --- a/models/modeldb.go +++ b/models/modeldb.go @@ -864,7 +864,7 @@ type OpenEulerRepoOrigin struct { Version string `orm:"size(64);column(version)" description:"版本号"` Summary string `orm:"size(1024);column(summary)" description:"简介"` Decription string `orm:"size(8092);column(decription)" description:"描述"` - Branchs string `orm:"size(256);column(branch)" description:"分支信息"` + Branchs string `orm:"size(512);column(branch)" description:"分支信息"` Status int8 `orm:"default(1);column(status)" description:"1:正常;2:已删除"` CreateTime string `orm:"size(32);column(create_time)"` UpdateTime string `orm:"size(32);column(update_time);null"` diff --git a/taskhandler/excel.go b/taskhandler/excel.go index d112442..8cf524e 100644 --- a/taskhandler/excel.go +++ b/taskhandler/excel.go @@ -1231,6 +1231,12 @@ func affectIssueProc(v IssueAndPkg, affectBranch string, cvexml *[]CveXml, logs.Error("GetIssueTemplateByColName, ----", err, iv.Number, iv.Repo, v.IssueId) continue } + //save data to excel + el, err := models.GetCanExportExcelData(tpl.CveNum, tpl.IssueNum, tpl.OwnedComponent, tpl.IssueId) + if err != nil { + logs.Error("GetCanExportExcelData, err: ", err, "tpl.CveNum, tpl.IssueNum: ", tpl.CveNum, tpl.IssueNum, tpl.OwnedComponent) + continue + } // Check whether the cve data has been released sa issueExist, _ := GetCveSecurityNotice(tpl.CveNum) if issueExist { @@ -1248,12 +1254,6 @@ func affectIssueProc(v IssueAndPkg, affectBranch string, cvexml *[]CveXml, logs.Error("ReplacePackageByCveId, err: ", err, "tpl.CveId: ", tpl.CveId) continue } - //save data to excel - el, err := models.GetCanExportExcelData(tpl.CveNum, tpl.IssueNum, tpl.OwnedComponent, tpl.IssueId) - if err != nil { - logs.Error("GetCanExportExcelData, err: ", err, "tpl.CveNum, tpl.IssueNum: ", tpl.CveNum, tpl.IssueNum, tpl.OwnedComponent) - continue - } //logs.Info("el=======>", el) err = ec.handleWriteContentSync(el, affectBranch, cvexml, dpdates, securityNotice, packRpmx, cvrfFileList, componentMap, cvfrFileMap) diff --git a/taskhandler/gauss.go b/taskhandler/gauss.go index 5265809..d1009ed 100644 --- a/taskhandler/gauss.go +++ b/taskhandler/gauss.go @@ -190,47 +190,69 @@ func CreateReleaseCve(ogc *models.OpenGaussCveList, xmlp *models.ExcelExport, fl updateSlice = append(updateSlice, "NvectorVule") ogc.OvectorVule = xmlp.OvectorVule updateSlice = append(updateSlice, "OvectorVule") - ogc.NattackVector = xmlp.NattackVector + if xmlp.NattackVector != "" { + ogc.NattackVector = common.StrFirstToUpper(strings.ToLower(xmlp.NattackVector)) + } updateSlice = append(updateSlice, "NattackVector") - ogc.NaccessVector = xmlp.NaccessVector + if xmlp.NaccessVector != "" { + ogc.NaccessVector = common.StrFirstToUpper(strings.ToLower(xmlp.NaccessVector)) + } updateSlice = append(updateSlice, "NaccessVector") ogc.OattackVector = xmlp.OattackVector updateSlice = append(updateSlice, "OattackVector") ogc.OaccessVector = xmlp.OaccessVector updateSlice = append(updateSlice, "OaccessVector") - ogc.NattackComplexity = xmlp.NattackComplexity + if xmlp.NattackComplexity != "" { + ogc.NattackComplexity = common.StrFirstToUpper(strings.ToLower(xmlp.NattackComplexity)) + } updateSlice = append(updateSlice, "NattackComplexity") - ogc.NaccessComplexity = xmlp.NaccessComplexity + if xmlp.NaccessComplexity != "" { + ogc.NaccessComplexity = common.StrFirstToUpper(strings.ToLower(xmlp.NaccessComplexity)) + } updateSlice = append(updateSlice, "NaccessComplexity") ogc.OattackComplexity = xmlp.OattackComplexity updateSlice = append(updateSlice, "OattackComplexity") ogc.OaccessComplexity = xmlp.OaccessComplexity updateSlice = append(updateSlice, "OaccessComplexity") - ogc.NprivilegeRequired = xmlp.NprivilegeRequired + if xmlp.NprivilegeRequired != "" { + ogc.NprivilegeRequired = common.StrFirstToUpper(strings.ToLower(xmlp.NprivilegeRequired)) + } updateSlice = append(updateSlice, "NprivilegeRequired") ogc.OprivilegeRequired = xmlp.OprivilegeRequired updateSlice = append(updateSlice, "OprivilegeRequired") - ogc.NuserInteraction = xmlp.NuserInteraction + if xmlp.NuserInteraction != "" { + ogc.NuserInteraction = common.StrFirstToUpper(strings.ToLower(xmlp.NuserInteraction)) + } updateSlice = append(updateSlice, "NuserInteraction") ogc.OuserInteraction = xmlp.OuserInteraction updateSlice = append(updateSlice, "OuserInteraction") - ogc.Nscope = xmlp.Nscope + if xmlp.Nscope != "" { + ogc.Nscope = common.StrFirstToUpper(strings.ToLower(xmlp.Nscope)) + } updateSlice = append(updateSlice, "Nscope") ogc.Oscope = xmlp.Oscope updateSlice = append(updateSlice, "Oscope") - ogc.Nconfidentiality = xmlp.Nconfidentiality + if xmlp.Nconfidentiality != "" { + ogc.Nconfidentiality = common.StrFirstToUpper(strings.ToLower(xmlp.Nconfidentiality)) + } updateSlice = append(updateSlice, "Nconfidentiality") ogc.Oconfidentiality = xmlp.Oconfidentiality updateSlice = append(updateSlice, "Oconfidentiality") - ogc.Nintegrity = xmlp.Nintegrity + if xmlp.Nintegrity != "" { + ogc.Nintegrity = common.StrFirstToUpper(strings.ToLower(xmlp.Nintegrity)) + } updateSlice = append(updateSlice, "Nintegrity") ogc.Ointegrity = xmlp.Ointegrity updateSlice = append(updateSlice, "Ointegrity") - ogc.Navailability = xmlp.Navailability + if xmlp.Navailability != "" { + ogc.Navailability = common.StrFirstToUpper(strings.ToLower(xmlp.Navailability)) + } updateSlice = append(updateSlice, "Navailability") ogc.Oavailability = xmlp.Oavailability updateSlice = append(updateSlice, "Oavailability") - ogc.Nauthentication = xmlp.Nauthentication + if xmlp.Nauthentication != "" { + ogc.Nauthentication = common.StrFirstToUpper(strings.ToLower(xmlp.Nauthentication)) + } updateSlice = append(updateSlice, "Nauthentication") ogc.Oauthentication = xmlp.Oauthentication updateSlice = append(updateSlice, "Oauthentication") diff --git a/taskhandler/yaml.go b/taskhandler/yaml.go index 2d8c642..5bc832f 100644 --- a/taskhandler/yaml.go +++ b/taskhandler/yaml.go @@ -475,9 +475,15 @@ func UpdateYamlToDb(er models.OpenEulerRepoOrigin) { oro.Version = er.Version repErr := models.QueryEulerRepoOrigin(&oro, "PackageName", "Version") if oro.Id > 0 { - oro.Decription = er.Decription - oro.Branchs = er.Branchs - oro.Summary = er.Summary + if len(oro.Decription) < 2 && len(er.Decription) > 2 { + oro.Decription = er.Decription + } + if len(er.Branchs) > 1 && !strings.Contains(oro.Branchs, er.Branchs){ + oro.Branchs = oro.Branchs + "," + er.Branchs + } + if len(oro.Summary) < 2 && len(er.Summary) > 2 { + oro.Summary = er.Summary + } oro.UpdateTime = er.UpdateTime oro.Status = 1 upErr := models.UpdateEulerRepoOrigin(&oro, "Decription", "Branchs", "Summary", "UpdateTime") @@ -529,7 +535,7 @@ func AddYamlData(ge *models.GitOpenEuler, yl models.OpenEulerRepoOrigin) { ge.Version = yl.Version ge.PackageId = 0 ge.TableId = 0 - ge.TableName = yl.Branchs + //ge.TableName = yl.Branchs ge.Status = 1 ymalId, yErr := models.InsertYamlData(ge) if yErr == nil { -- Gitee