Skip to content

Commit 1864324

Browse files
committed
RHINENG-21786: add severity name to advisory related APIs
1 parent b1792ab commit 1864324

5 files changed

Lines changed: 77 additions & 1 deletion

File tree

docs/v3/openapi.json

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,20 @@
123123
"type": "integer"
124124
}
125125
},
126+
{
127+
"name": "filter[severity_name]",
128+
"in": "query",
129+
"description": "Filter",
130+
"schema": {
131+
"type": "string",
132+
"enum": [
133+
"Low",
134+
"Medium",
135+
"High",
136+
"Critical"
137+
]
138+
}
139+
},
126140
{
127141
"name": "filter[installable_systems]",
128142
"in": "query",
@@ -659,6 +673,20 @@
659673
"type": "integer"
660674
}
661675
},
676+
{
677+
"name": "filter[severity_name]",
678+
"in": "query",
679+
"description": "Filter",
680+
"schema": {
681+
"type": "string",
682+
"enum": [
683+
"Low",
684+
"Medium",
685+
"High",
686+
"Critical"
687+
]
688+
}
689+
},
662690
{
663691
"name": "filter[applicable_systems]",
664692
"in": "query",
@@ -1698,6 +1726,20 @@
16981726
"minimum": 1,
16991727
"type": "integer"
17001728
}
1729+
},
1730+
{
1731+
"name": "filter[severity_name]",
1732+
"in": "query",
1733+
"description": "Filter",
1734+
"schema": {
1735+
"type": "string",
1736+
"enum": [
1737+
"Low",
1738+
"Medium",
1739+
"High",
1740+
"Critical"
1741+
]
1742+
}
17011743
}
17021744
],
17031745
"responses": {
@@ -4806,6 +4848,20 @@
48064848
"minimum": 1,
48074849
"type": "integer"
48084850
}
4851+
},
4852+
{
4853+
"name": "filter[severity_name]",
4854+
"in": "query",
4855+
"description": "Filter",
4856+
"schema": {
4857+
"type": "string",
4858+
"enum": [
4859+
"Low",
4860+
"Medium",
4861+
"High",
4862+
"Critical"
4863+
]
4864+
}
48094865
}
48104866
],
48114867
"responses": {
@@ -6071,6 +6127,9 @@
60716127
"severity": {
60726128
"type": "integer"
60736129
},
6130+
"severity_name": {
6131+
"type": "string"
6132+
},
60746133
"synopsis": {
60756134
"type": "string"
60766135
}
@@ -6242,6 +6301,9 @@
62426301
"severity": {
62436302
"type": "integer"
62446303
},
6304+
"severity_name": {
6305+
"type": "string"
6306+
},
62456307
"synopsis": {
62466308
"type": "string"
62476309
}
@@ -6791,6 +6853,9 @@
67916853
"severity": {
67926854
"type": "integer"
67936855
},
6856+
"severity_name": {
6857+
"type": "string"
6858+
},
67946859
"status": {
67956860
"type": "string"
67966861
},
@@ -6859,6 +6924,9 @@
68596924
"severity": {
68606925
"type": "integer"
68616926
},
6927+
"severity_name": {
6928+
"type": "string"
6929+
},
68626930
"status": {
68636931
"type": "string"
68646932
},

manager/controllers/advisories.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ type AdvisoryItemAttributesCommon struct {
5454
Synopsis string `json:"synopsis" csv:"synopsis" query:"am.synopsis" gorm:"column:synopsis"`
5555
AdvisoryTypeName string `json:"advisory_type_name" csv:"advisory_type_name" query:"at.name" order_query:"at.preference" gorm:"column:advisory_type_name"` // Advisory type name, proper ordering ensured (unknown, unspecified, other, enhancement, bugfix, security)
5656
Severity *int `json:"severity,omitempty" csv:"severity" query:"am.severity_id" gorm:"column:severity"`
57+
SeverityName *string `json:"severity_name,omitempty" csv:"severity_name" query:"sev.name" gorm:"column:severity_name"`
5758
CveCount int `json:"cve_count" csv:"cve_count" query:"CASE WHEN jsonb_typeof(am.cve_list) = 'array' THEN jsonb_array_length(am.cve_list) ELSE 0 END" gorm:"column:cve_count"`
5859
RebootRequired bool `json:"reboot_required" csv:"reboot_required" query:"am.reboot_required" gorm:"column:reboot_required"`
5960
ReleaseVersions RelList `json:"release_versions" csv:"release_versions" query:"null" gorm:"-"`
@@ -121,6 +122,7 @@ func advisoriesCommon(c *gin.Context) (*gorm.DB, *ListMeta, []string, error) {
121122
// @Param filter[synopsis] query string false "Filter"
122123
// @Param filter[advisory_type_name] query string false "Filter" Enums(unknown,unspecified,other,enhancement,bugfix,security)
123124
// @Param filter[severity] query int false "Filter" minimum(1) maximum(4)
125+
// @Param filter[severity_name] query string false "Filter" Enums(Low,Medium,High,Critical)
124126
// @Param filter[installable_systems] query int false "Filter"
125127
// @Param filter[applicable_systems] query int false "Filter"
126128
// @Param tags query []string false "Tag filter"
@@ -211,6 +213,7 @@ func buildQueryAdvisories(db *gorm.DB, account int) *gorm.DB {
211213
query := database.AdvisoryMetadata(db).
212214
Select(AdvisoriesSelect).
213215
Joins("JOIN advisory_account_data aad ON am.id = aad.advisory_id").
216+
Joins("LEFT JOIN advisory_severity sev ON am.severity_id = sev.id").
214217
Where("aad.rh_account_id = ?", account).
215218
Where("aad.systems_applicable > 0")
216219
return query
@@ -234,7 +237,8 @@ func buildQueryAdvisoriesTagged(db *gorm.DB, filters map[string]FilterData, acco
234237

235238
query := database.AdvisoryMetadata(db).
236239
Select(AdvisoriesSelect).
237-
Joins("JOIN (?) aad ON am.id = aad.advisory_id", subq)
240+
Joins("JOIN (?) aad ON am.id = aad.advisory_id", subq).
241+
Joins("LEFT JOIN advisory_severity sev ON am.severity_id = sev.id")
238242

239243
return query
240244
}

manager/controllers/advisories_export.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
// @Param filter[synopsis] query string false "Filter"
2424
// @Param filter[advisory_type_name] query string false "Filter" Enums(unknown,unspecified,other,enhancement,bugfix,security)
2525
// @Param filter[severity] query int false "Filter" minimum(1) maximum(4)
26+
// @Param filter[severity_name] query string false "Filter" Enums(Low,Medium,High,Critical)
2627
// @Param filter[applicable_systems] query int false "Filter"
2728
// @Success 200 {array} AdvisoriesDBLookup
2829
// @Failure 415 {object} utils.ErrorResponse

manager/controllers/system_advisories.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ func systemAdvisoriesCommon(c *gin.Context) (*gorm.DB, *ListMeta, []string, erro
119119
// @Param filter[synopsis] query string false "Filter"
120120
// @Param filter[advisory_type_name] query string false "Filter" Enums(unknown,unspecified,other,enhancement,bugfix,security)
121121
// @Param filter[severity] query int false "Filter" minimum(1) maximum(4)
122+
// @Param filter[severity_name] query string false "Filter" Enums(Low,Medium,High,Critical)
122123
// @Success 200 {object} SystemAdvisoriesResponse
123124
// @Failure 400 {object} utils.ErrorResponse
124125
// @Failure 404 {object} utils.ErrorResponse
@@ -193,6 +194,7 @@ func buildSystemAdvisoriesQuery(db *gorm.DB, account int, groups map[string]stri
193194
query := database.SystemAdvisoriesByInventoryID(db, account, groups, inventoryID,
194195
database.JoinAdvisoryMetadata, database.JoinAdvisoryType).
195196
Joins("JOIN status ON sa.status_id = status.id").
197+
Joins("LEFT JOIN advisory_severity sev ON sa.severity_id = sev.id").
196198
Select(SystemAdvisoriesSelect)
197199
return query
198200
}

manager/controllers/system_advisories_export.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
// @Param filter[synopsis] query string false "Filter"
2626
// @Param filter[advisory_type_name] query string false "Filter" Enums(unknown,unspecified,other,enhancement,bugfix,security)
2727
// @Param filter[severity] query int false "Filter" minimum(1) maximum(4)
28+
// @Param filter[severity_name] query string false "Filter" Enums(Low,Medium,High,Critical)
2829
// @Success 200 {array} SystemAdvisoriesDBLookup
2930
// @Failure 400 {object} utils.ErrorResponse
3031
// @Failure 404 {object} utils.ErrorResponse

0 commit comments

Comments
 (0)