summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Buchholz <rbu@goodpoint.de>2009-03-20 04:43:47 +0100
committerRobert Buchholz <rbu@goodpoint.de>2009-03-20 04:43:47 +0100
commit034b062871f56e8348e62833d5eb8b156ac4e4a0 (patch)
tree416f62e9527d074604178a51b93b4ff2182127dd /kiss2.py
parentInitial version of KISS2 (diff)
downloadkernel-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-xkiss2.py55
1 files changed, 48 insertions, 7 deletions
diff --git a/kiss2.py b/kiss2.py
index 9ede7b6..16a838f 100755
--- a/kiss2.py
+++ b/kiss2.py
@@ -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.'