summaryrefslogtreecommitdiffstats
path: root/bin/tracker_service.py
diff options
context:
space:
mode:
authorSalvatore Bonaccorso <carnil@debian.org>2020-06-04 20:02:34 +0000
committerSalvatore Bonaccorso <carnil@debian.org>2020-06-04 20:02:34 +0000
commit7c827e4cc1f34c03ef91676f3814a2b756eed64a (patch)
treee301b2ac34019dc6c83499fa818b37e65670d470 /bin/tracker_service.py
parentb56027d86ae3581641c9271ea6e348573aed3286 (diff)
parent5c860cef30051f557bb167af3222f4c5ec61c9f9 (diff)
Merge branch 'distro-config' into 'master'
Distro config reunification See merge request security-tracker-team/security-tracker!48
Diffstat (limited to 'bin/tracker_service.py')
-rwxr-xr-xbin/tracker_service.py113
1 files changed, 48 insertions, 65 deletions
diff --git a/bin/tracker_service.py b/bin/tracker_service.py
index d45d83b6a1..44a2186ca1 100755
--- a/bin/tracker_service.py
+++ b/bin/tracker_service.py
@@ -3,6 +3,7 @@
import sys
sys.path.insert(0,'../lib/python')
import bugs
+import config
import re
import security_db
from web_support import *
@@ -138,21 +139,24 @@ class TrackerService(webservice_base_class):
self.json_data = None # the JSON dump itself
self.json_timestamp = None # timestamp of JSON generation
self.json_last_modified = None
+
+ self.stable_releases = config.get_supported_releases()
+ self.stable_releases.remove(config.get_release_codename('testing'))
+ self.stable_releases.remove('sid')
+ self.stable_releases.reverse()
+
self.register('', self.page_home)
self.register('*', self.page_object)
self.register('redirect/*', self.page_redirect)
self.register('source-package/*', self.page_source_package)
- self.register('status/release/oldoldstable',
- self.page_status_release_oldoldstable)
- self.register('status/release/oldstable',
- self.page_status_release_oldstable)
- self.register('status/release/stable', self.page_status_release_stable)
- self.register('status/release/stable-backports',
- self.page_status_release_stable_backports)
- self.register('status/release/oldstable-backports',
- self.page_status_release_oldstable_backports)
- self.register('status/release/oldoldstable-backports',
- self.page_status_release_oldoldstable_backports)
+
+ for release in self.stable_releases:
+ alias = config.get_release_alias(release)
+ self.register('status/release/' + alias,
+ self.page_status_release_stable_like)
+ self.register('status/release/' + alias + '-backports',
+ self.page_status_release_backports_like)
+
self.register('status/release/testing',
self.page_status_release_testing)
self.register('status/release/unstable',
@@ -213,6 +217,16 @@ class TrackerService(webservice_base_class):
else:
return RedirectResult(url.scriptRelativeFull(query))
+ def gen_stable_links():
+ links = []
+ for release in self.stable_releases:
+ alias = config.get_release_alias(release)
+ links.append(('status/release/' + alias,
+ 'Vulnerable packages in the ' + alias + ' suite'))
+ links.append(('status/release/' + alias + '-backports',
+ 'Vulnerable packages in backports for ' + alias))
+ return links
+
return self.create_page(
url, 'Security Bug Tracker',
[P(
@@ -238,23 +252,12 @@ aware of and/or help us improve the quality of this information by """,
NAV(make_menu(
url.scriptRelative,
- ('status/release/unstable',
+ *[('status/release/unstable',
'Vulnerable packages in the unstable suite'),
('status/release/testing',
- 'Vulnerable packages in the testing suite'),
- ('status/release/stable',
- 'Vulnerable packages in the stable suite'),
- ('status/release/stable-backports',
- 'Vulnerable packages in backports for stable'),
- ('status/release/oldstable',
- 'Vulnerable packages in the oldstable suite'),
- ('status/release/oldstable-backports',
- 'Vulnerable packages in backports for oldstable'),
- ('status/release/oldoldstable',
- 'Vulnerable packages in the oldoldstable suite'),
- ('status/release/oldoldstable-backports',
- 'Vulnerable packages in backports for oldoldstable'),
- ('status/dtsa-candidates', "Candidates for DTSAs"),
+ 'Vulnerable packages in the testing suite')]
+ + gen_stable_links() +
+ [('status/dtsa-candidates', "Candidates for DTSAs"),
('status/todo', 'TODO items'),
('status/undetermined', 'Packages that may be vulnerable but need to be checked (undetermined issues)'),
('status/unimportant', 'Packages that have open unimportant issues'),
@@ -273,7 +276,7 @@ aware of and/or help us improve the quality of this information by """,
'Covered Debian releases and architectures'),
('data/json',
'All information in JSON format')
- )),
+ ])),
self.make_search_button(url),
P("""(You can enter CVE names, Debian bug numbers and package
@@ -693,8 +696,8 @@ to improve our documentation and procedures, so feedback is welcome.""")])])
replacement='No known security announcements.')
])
- def page_status_release_stable_oldstable_oldoldstable(self, release, params, url):
- assert release in ('stable', 'oldstable', 'oldoldstable',)
+ def page_status_release_stable_like(self, path, params, url):
+ release = os.path.basename(url.path_info)
bf = BugFilter(params)
@@ -750,15 +753,6 @@ to improve our documentation and procedures, so feedback is welcome.""")])])
for this vulnerability.'''),
self.nvd_text])
- def page_status_release_stable(self, path, params, url):
- return self.page_status_release_stable_oldstable_oldoldstable('stable', params, url)
- def page_status_release_oldstable(self, path, params, url):
- return self.page_status_release_stable_oldstable_oldoldstable('oldstable',
- params, url)
- def page_status_release_oldoldstable(self, path, params, url):
- return self.page_status_release_stable_oldstable_oldoldstable('oldoldstable',
- params, url)
-
def page_status_release_testing(self, path, params, url):
bf = BugFilter(params)
@@ -878,24 +872,14 @@ to improve our documentation and procedures, so feedback is welcome.""")])])
title='Vulnerable source packages in the unstable suite',
rel='sid')
- def page_status_release_stable_backports(self, path, params, url):
- return self.page_status_release_unstable_like(
- path, params, url,
- title='Vulnerable source packages among backports for stable',
- rel='buster-backports')
-
- def page_status_release_oldstable_backports(self, path, params, url):
- return self.page_status_release_unstable_like(
- path, params, url,
- title='Vulnerable source packages among backports for oldstable',
- rel='stretch-backports')
+ def page_status_release_backports_like(self, path, params, url):
+ release = os.path.basename(url.path_info)
+ release = release.split("-")[0]
- def page_status_release_oldoldstable_backports(self, path, params, url):
return self.page_status_release_unstable_like(
path, params, url,
- title='Vulnerable source packages among backports for oldoldstable',
- rel='jessie-backports')
-
+ title='Vulnerable source packages among backports for ' + release,
+ rel=config.get_release_codename(release, '-backports'))
def page_status_dtsa_candidates(self, path, params, url):
bf = BugFilter(params,nonodsa=True,noignored=True,nopostponed=True)
@@ -909,18 +893,19 @@ to improve our documentation and procedures, so feedback is welcome.""")])])
(SELECT testing.version_id < stable.version_id
FROM source_packages AS testing, source_packages AS stable
WHERE testing.name = testing_status.package
- AND testing.release = 'bullseye'
+ AND testing.release = ?
AND testing.subrelease = ''
AND testing.archive = testing_status.section
AND stable.name = testing_status.package
- AND stable.release = 'buster'
+ AND stable.release = ?
AND stable.subrelease = 'security'
AND stable.archive = testing_status.section),
(SELECT range_remote FROM nvd_data
WHERE cve_name = bug)
FROM testing_status
WHERE (NOT unstable_vulnerable)
- AND (NOT testing_security_fixed)"""):
+ AND (NOT testing_security_fixed)""",
+ (config.get_release_codename('testing'), config.get_release_codename('stable'))):
if bf.urgencyFiltered(urgency, vulnerable):
continue
if bf.remoteFiltered(remote):
@@ -994,14 +979,13 @@ checker to find out why they have not entered testing yet."""),
old_pkg = ''
old_dsc = ''
last_displayed = ''
- releases = ('sid', 'bullseye', 'buster', 'stretch', 'jessie')
+ releases = config.get_supported_releases()
for (pkg_name, bug_name, release, desc) in self.db.cursor().execute(
"""SELECT DISTINCT sp.name, st.bug_name, sp.release,
bugs.description
FROM source_package_status AS st, source_packages AS sp, bugs
WHERE st.vulnerable == 2 AND sp.rowid = st.package
- AND ( sp.release = ? OR sp.release = ? OR sp.release = ?
- OR sp.release = ? OR sp.release = ? )
+ AND sp.release IN (""" + ",".join("?" * len(releases)) + """)
AND sp.subrelease = '' AND st.bug_name == bugs.name
ORDER BY sp.name, st.bug_name""", releases):
@@ -1039,14 +1023,14 @@ checker to find out why they have not entered testing yet."""),
old_dsc = ''
old_name = ''
last_displayed = ''
- releases = ('sid', 'bullseye', 'buster', 'stretch', 'jessie')
+ releases = config.get_supported_releases()
for (pkg_name, bug_name, release, desc) in self.db.cursor().execute(
"""SELECT DISTINCT sp.name, st.bug_name, sp.release,
bugs.description
FROM source_package_status AS st, source_packages AS sp, bugs
WHERE st.vulnerable > 0 AND sp.rowid = st.package
- AND ( sp.release = ? OR sp.release = ? OR sp.release = ?
- OR sp.release = ? OR sp.release = ? ) AND st.urgency == 'unimportant'
+ AND sp.release IN (""" + ",".join("?" * len(releases)) + """)
+ AND st.urgency == 'unimportant'
AND sp.subrelease = '' AND st.bug_name == bugs.name
ORDER BY sp.name, st.bug_name""", releases):
@@ -1325,7 +1309,7 @@ Debian bug number.'''),
urgency = defaultdict(lambda: defaultdict(dict))
nodsa = defaultdict(lambda: defaultdict(dict))
nodsa_reason = defaultdict(lambda: defaultdict(dict))
- supported_releases = ('sid', 'bullseye', 'buster', 'stretch', 'jessie')
+ supported_releases = config.get_supported_releases()
for (pkg, issue, desc, debianbug, release, subrelease, db_version, db_fixed_version, db_status, db_urgency, db_remote, db_nodsa, db_nodsa_reason) in self.db.cursor().execute(
"""SELECT sp.name, st.bug_name,
(SELECT cve_desc FROM nvd_data
@@ -1350,8 +1334,7 @@ Debian bug number.'''),
FROM source_package_status AS st, source_packages AS sp, bugs
WHERE sp.rowid = st.package AND st.bug_name = bugs.name
AND ( st.bug_name LIKE 'CVE-%' OR st.bug_name LIKE 'TEMP-%' )
- AND ( sp.release = ? OR sp.release = ? OR sp.release = ?
- OR sp.release = ? OR sp.release = ? )
+ AND sp.release IN (""" + ",".join("?" * len(supported_releases)) + """)
ORDER BY sp.name, st.bug_name, sp.release, sp.subrelease""" , supported_releases):
### to ease debugging...:

© 2014-2024 Faster IT GmbH | imprint | privacy policy