summaryrefslogtreecommitdiffstats
path: root/bin/tracker_service.py
diff options
context:
space:
mode:
authorHolger Levsen <holger@debian.org>2015-02-26 15:49:43 +0000
committerHolger Levsen <holger@debian.org>2015-02-26 15:49:43 +0000
commitce8fe1270827774234663dd26e25cdf79f62d2e1 (patch)
tree5502bda7867410b17651b233654247a2872bf11a /bin/tracker_service.py
parent7b5a2e5dad487fcc8a28aa949d896b63cf807500 (diff)
Dump data as .yaml via /tracker/data/yaml (Closes: #761859)
git-svn-id: svn+ssh://svn.debian.org/svn/secure-testing@32509 e39458fd-73e7-0310-bf30-c45bca0a0e42
Diffstat (limited to 'bin/tracker_service.py')
-rw-r--r--bin/tracker_service.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/bin/tracker_service.py b/bin/tracker_service.py
index ec7cee535e..5b17c9f443 100644
--- a/bin/tracker_service.py
+++ b/bin/tracker_service.py
@@ -138,6 +138,7 @@ class TrackerService(webservice_base_class):
self.register('data/funny-versions', self.page_data_funny_versions)
self.register('data/fake-names', self.page_data_fake_names)
self.register('data/pts/1', self.page_data_pts)
+ self.register('data/yaml', self.page_yaml)
self.register('debsecan/**', self.page_debsecan)
self.register('data/report', self.page_report)
self.register('style.css', self.page_style_css)
@@ -1226,6 +1227,63 @@ Debian bug number.'''),
data.append('\n')
return BinaryResult(''.join(data),'application/octet-stream')
+ def page_yaml(self, path, params, url):
+ data = []
+ old_pkg = ''
+ releases = ('sid', 'jessie', 'wheezy', 'squeeze')
+ for (pkg, bug, desc, debianbug, release, subrelease, version, status, urgency, remote, nodsa) in self.db.cursor().execute(
+ """SELECT sp.name, st.bug_name, bugs.description,
+ (SELECT debian_cve.bug FROM debian_cve
+ WHERE debian_cve.bug_name = st.bug_name
+ ORDER BY debian_cve.bug),
+ sp.release, sp.subrelease, sp.version, st.vulnerable, st.urgency,
+ (SELECT range_remote FROM nvd_data
+ WHERE cve_name = st.bug_name),
+ (SELECT comment FROM package_notes_nodsa AS nd
+ WHERE nd.package = sp.name AND nd.release = sp.release
+ AND nd.bug_name = st.bug_name) AS nodsa
+ FROM source_package_status AS st, source_packages AS sp, bugs
+ WHERE sp.rowid = st.package AND st.bug_name = bugs.name
+ AND ( sp.release = ? OR sp.release = ? OR sp.release = ?
+ OR sp.release = ? )
+ ORDER BY sp.name, st.bug_name, sp.release, sp.subrelease""" , releases):
+
+ if old_pkg != pkg:
+ old_pkg = pkg
+ old_bug = ''
+ data.append(pkg+':\n')
+ if old_bug != bug:
+ old_bug = bug
+ data.append(' '+bug+':\n')
+ data.append(' description: '+desc+'\n')
+ if str(debianbug) != 'None':
+ data.append(' bug: '+str(debianbug)+'\n')
+ data.append(' releases: \n')
+
+ if subrelease == '':
+ my_release = release
+ else:
+ my_release = release+'-'+subrelease
+
+ data.append(' '+my_release+':\n')
+ data.append(' version: '+version+'\n')
+ if status > 0:
+ # 1 = vulnerable, 2 = undetermined
+ data.append(' status: open\n')
+ else:
+ data.append(' status: resolved\n')
+ data.append(' urgency: '+urgency+'\n')
+ if str(remote) == 'None':
+ data.append(' range: no data\n')
+ elif remote == 1:
+ data.append(' range: remote\n')
+ else:
+ data.append(' range: local\n')
+ if str(nodsa) != 'None':
+ data.append(' nodsa: '+nodsa+'\n')
+
+ return BinaryResult(''.join(data),'application/octet-stream')
+
def page_debsecan(self, path, params, url):
obj = '/'.join(path)
data = self.db.getDebsecan(obj)

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