diff options
author | Robert Buchholz <rbu@goodpoint.de> | 2009-03-20 04:43:47 +0100 |
---|---|---|
committer | Robert Buchholz <rbu@goodpoint.de> | 2009-03-20 04:43:47 +0100 |
commit | 034b062871f56e8348e62833d5eb8b156ac4e4a0 (patch) | |
tree | 416f62e9527d074604178a51b93b4ff2182127dd /kiss2.py | |
parent | Initial version of KISS2 (diff) | |
download | kernel-check-kiss2-old.tar.gz kernel-check-kiss2-old.tar.bz2 kernel-check-kiss2-old.zip |
Add doc and some old functionskiss2-old
Diffstat (limited to 'kiss2.py')
-rwxr-xr-x | kiss2.py | 55 |
1 files changed, 48 insertions, 7 deletions
@@ -10,6 +10,7 @@ import os import portage import portage_versions import re +import elementtree.ElementTree as ET genpatcheslist="./output/genpversions.txt" @@ -251,6 +252,23 @@ class IntervalEntry: val += "<%s" % (self.upper) return val + def to_xml(self, element = None): + intnode = ET.Element("interval") + if element: + element.append(bugnode) + + intnode.source = self.name + + + for item in ("bugno", "title", "arch", "severity", "url"): + c = ET.SubElement(bugnode, item) + c.text = self.__getattribute__(item) + for entry in self.affected: + entry.to_xml(bugnode) + for cve in self.cve: + cve.to_xml(bugnode) + return bugnode + def is_in_interval(self, version): """ Returns True if the given version is inside our specified interval, False otherwise. Note: 'name' is discarded in the comparison. """ @@ -295,11 +313,14 @@ class IntervalEntry: return True -class Bug: - def __init__(self, bugno, title = "", severity = "normal", affected = ()): +class Bug(object): + def __init__(self, bugno, title = "", arch = "All", severity = "normal", url = "", affected = (), cves = ""): self.bugno = bugno self.title = title + self.arch = arch self.severity = severity + self.url = url + self.cves = cves self.affected = affected #(Entry("linux", "<", "2.6.23"),Entry("gp", "<", "2.6.20-14"),Entry("hardened", ">", "2.6")) def affects(self, kernelatom): @@ -354,6 +375,25 @@ class Bug: affected = False return affected + def to_xml(self, element = None): + bugnode = ET.Element("bug") + if element: + element.append(bugnode) + + for item in ("bugno", "title", "arch", "severity", "url"): + c = ET.SubElement(bugnode, item) + c.text = self.__getattribute__(item) + + affnode = bugnode.append("affected") + for entry in self.affected: + entry.to_xml(affnode) + + cves = bugnode.append("cves") + for cve in self.cve: + cve.to_xml(cves) + return bugnode + + def set_from_whiteboard(self, whiteboard): """ Set the Bug's values given reading a Status Whiteboard string from a Bug. """ if whiteboard == None: @@ -429,12 +469,13 @@ class Bugzilla: bugid = bug_raw['bugid'] bug_xml = self.bz.get(bugid) - bug = Bug(bugid, bug_raw['desc'], bug_raw['severity']) + bug = Bug(bugid, bug_raw['desc'], bug_raw['arch'], bug_raw['severity'], url = "") try: bug.set_from_whiteboard(bug_xml.find('//status_whiteboard').text) self.bugs.append(bug) + bug.to_xml() except: - #print sys.exc_value + print sys.exc_value self.failed_bugs.append(bug) @@ -467,8 +508,8 @@ def main(): if __name__ == "__main__": - try: + #try: main() - except KeyboardInterrupt: - print '\n ! Exiting.' + #except KeyboardInterrupt: + #print '\n ! Exiting.' |