Skip to content

Commit 5ec90de

Browse files
committed
Revert package status change, add fucntionality to filter by cve status when requested
1 parent 8292330 commit 5ec90de

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

tests/test_routes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ def test_cves_returns_200_for_non_existing_version(self):
136136
)
137137

138138
def test_cves_returns_422_for_non_existing_package_status(self):
139-
response = self.client.get("/security/cves.json?package_status=none")
139+
response = self.client.get("/security/cves.json?status=no-exist")
140140

141141
assert response.status_code == 422
142142
assert "Cannot find a status" in response.json["errors"]

webapp/schemas.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,14 +461,14 @@ class CVEsAPISchema(Schema):
461461
description="List of release codenames ",
462462
allow_none=True,
463463
),
464-
"status": String(
464+
"cve_status": String(
465465
description="CVE status",
466466
enum=["not-in-ubuntu", "active", "rejected"],
467467
allow_none=True,
468468
),
469-
"package_status": List(
469+
"status": List(
470470
StatusStatuses(),
471-
description="List of statuses",
471+
description="List of package statuses",
472472
allow_none=True,
473473
),
474474
"order": String(

webapp/views.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,20 @@ def get_cves(**kwargs):
8181
offset = kwargs.get("offset", 0)
8282
component = kwargs.get("component")
8383
versions = kwargs.get("version")
84+
cve_status = kwargs.get("cve_status")
8485
status = kwargs.get("status")
85-
package_status = kwargs.get("package_status")
8686
order_by = kwargs.get("order")
8787
show_hidden = kwargs.get("show_hidden", False)
8888

89-
# query cves by filters
90-
cves_query: Query = db.session.query(CVE).filter(CVE.status == "active")
89+
# query cves by filters. Default filter by active CVEs
90+
if cve_status:
91+
cves_query: Query = db.session.query(CVE).filter(
92+
CVE.status == cve_status
93+
)
94+
else:
95+
cves_query: Query = db.session.query(CVE).filter(
96+
CVE.status == "active"
97+
)
9198

9299
# filter by priority
93100
if priority:
@@ -103,10 +110,6 @@ def get_cves(**kwargs):
103110
)
104111
)
105112

106-
# filter by CVE status
107-
if status:
108-
cves_query = cves_query.filter(CVE.status == status)
109-
110113
# build CVE statuses filter parameters
111114
parameters = []
112115

@@ -119,9 +122,9 @@ def get_cves(**kwargs):
119122
parameters.append(Status.component == component)
120123

121124
# filter by package status and version
122-
if _should_filter_by_version_and_status(package_status, versions):
125+
if _should_filter_by_version_and_status(status, versions):
123126
clean_versions = _get_clean_versions(versions)
124-
clean_statuses = _get_clean_statuses(package_status)
127+
clean_statuses = _get_clean_statuses(status)
125128

126129
# filter for cves.statuses by status-version criteria
127130
# exclude stauses that don't satisfy any status-version criteria

0 commit comments

Comments
 (0)