Merge ~pfsmorigo/ubuntu-cve-tracker:pfsmorigo/publish-cves-to-website into ubuntu-cve-tracker:master

Proposed by Paulo Flabiano Smorigo
Status: Rejected
Rejected by: Eduardo Barretto
Proposed branch: ~pfsmorigo/ubuntu-cve-tracker:pfsmorigo/publish-cves-to-website
Merge into: ubuntu-cve-tracker:master
Diff against target: 83 lines (+8/-41)
1 file modified
scripts/publish-cves-to-website-api.py (+8/-41)
Reviewer Review Type Date Requested Status
Eduardo Barretto Disapprove
Review via email: mp+402230@code.launchpad.net

Description of the change

Currently, the publish cve script use only the release name and cut the suffix out (i.e. /esm). That means we are sending two status for trusty: https://pastebin.canonical.com/p/HSWwDC7ZVM/

This merge proposal use the names the same way they are in the CVE file, filtering the releases we support. Like this: https://pastebin.canonical.com/p/jXCfshrSP8/

This change will not work with the current web API so we need to ask the web team to add those new names to the release_codename list.

To post a comment you must log in.
Revision history for this message
Eduardo Barretto (ebarretto) wrote :

I don't think this is an issue anymore and we adapted the script to solve this in a different way.
I will be closing this PR. Please open a new one in case anything else is needed.

review: Disapprove

Unmerged commits

781641c... by Paulo Flabiano Smorigo

scripts/publish-cves-to-website-api.py: use releases names including esm

Signed-off-by: Paulo Flabiano Smorigo <email address hidden>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/scripts/publish-cves-to-website-api.py b/scripts/publish-cves-to-website-api.py
2index ccc7f3c..7911d6c 100755
3--- a/scripts/publish-cves-to-website-api.py
4+++ b/scripts/publish-cves-to-website-api.py
5@@ -29,14 +29,6 @@ def authentication(method, url, payload):
6 client.cookies.save(ignore_discard=True)
7 return response
8
9-def get_codename(raw_codename, cve_releases):
10- codename = raw_codename.split("/")[0]
11-
12- if codename != "devel":
13- return codename
14-
15- return get_devel_codename(cve_releases)
16-
17 def get_tags(cve_data, pkg):
18 return list(cve_data['tags'].get(pkg, list()))
19
20@@ -44,32 +36,6 @@ def get_patches(cve_data, pkg):
21 patches_str = cve_data.get(f'Patches_{pkg}', "")
22 return [line for line in patches_str.split('\n') if line]
23
24-
25-def get_devel_codename(cve_releases):
26- for skip_release in ['upstream', 'devel', 'product', 'snap']:
27- if skip_release in cve_releases:
28- cve_releases.remove(skip_release)
29-
30- if len(cve_releases) <= 0:
31- print ("WARNING: No valid ubuntu releases in CVE", file=sys.stderr)
32- return None
33-
34- cve_releases = cve_lib.release_sort(cve_releases)
35-
36- devel_release_index = cve_lib.releases.index(cve_releases[-1]) + 1
37- if devel_release_index >= len(cve_lib.releases) or devel_release_index < 0:
38- print (
39- "WARNING: Could not determine devel release codename. Perhaps it hasn't "
40- "been added to cve_lib.all_releases yet?",
41- file=sys.stderr
42- )
43- return None
44-
45- cve_devel_release = cve_lib.releases[devel_release_index]
46-
47- return cve_devel_release
48-
49-
50 def post_single_cve(cve_filename):
51 # Upload active and ignored (in Ubuntu)
52 cve_data = cve_lib.load_cve(cve_filename)
53@@ -78,6 +44,11 @@ def post_single_cve(cve_filename):
54 if references[0] == "":
55 references.pop(0)
56
57+ supported_releases = cve_lib.releases
58+ supported_releases += [rel + "/esm" for rel in cve_lib.esm_releases]
59+ supported_releases += ["esm-infra/" + rel for rel in cve_lib.esm_infra_releases]
60+ supported_releases += ["esm-apps/" + rel for rel in cve_lib.esm_apps_releases]
61+
62 cvss3 = None
63 if len(cve_data["CVSS"]) > 0:
64 if "3." in cve_data["CVSS"][0][1]:
65@@ -91,15 +62,11 @@ def post_single_cve(cve_filename):
66 for pkg in cve_data["pkgs"]:
67 statuses = []
68 cve_releases = cve_data["pkgs"][pkg].keys()
69- cve_releases = [rel for rel in cve_releases if rel in cve_lib.releases]
70+ cve_releases = [rel for rel in cve_releases if rel in supported_releases]
71 tags[pkg] = get_tags(cve_data, pkg)
72 patches[pkg] = get_patches(cve_data, pkg)
73- for [raw_codename, value] in cve_data["pkgs"][pkg].items():
74- codename = get_codename(raw_codename, cve_releases)
75- if codename is None:
76- continue
77-
78- if codename in cve_lib.releases + ["upstream"]:
79+ for [codename, value] in cve_data["pkgs"][pkg].items():
80+ if codename in supported_releases + ["upstream"]:
81 statuses.append(
82 {
83 "release_codename": codename,

Subscribers

People subscribed via source and target branches