[Oval-commits] r78 - in trunk/tools/oval: definition parser

Pavel Vinogradov blaze-guest at alioth.debian.org
Fri Jul 13 17:22:34 UTC 2007


Author: blaze-guest
Date: 2007-07-13 17:22:34 +0000 (Fri, 13 Jul 2007)
New Revision: 78

Modified:
   trunk/tools/oval/definition/generator.py
   trunk/tools/oval/parser/dsa.py
Log:
Fix handling of bugged dsa data files. 
Now generator produce definition (for full Debian dsa base) that pass validation by ovaldi

Modified: trunk/tools/oval/definition/generator.py
===================================================================
--- trunk/tools/oval/definition/generator.py	2007-07-13 16:00:27 UTC (rev 77)
+++ trunk/tools/oval/definition/generator.py	2007-07-13 17:22:34 UTC (rev 78)
@@ -348,7 +348,11 @@
 		dsaref -- DSA parsed data
 	"""	
 	doc = xml.dom.minidom.Document ()
-
+	
+	if len (dsaref["packages"]) == 0:
+		logging.log(logging.WARNING, "Release definition not well formatted")
+		raise Exception
+	
 	### Definition block: Metadata, Notes, Criteria
 	### TODO: Replace DSA id with unique id
 	definition = __createXMLElement ("definition", attrs = {"id" : "oval:org.debian:def:%s" % __trimzero(dsa), "version" : "1", "class" : "vulnerability"})
@@ -433,7 +437,7 @@
 		try:
 			definitions.appendChild (createDefinition(dsa, dsaref[dsa]))
 		except Exception:
-			logging.log (logging.WARNING, "DSA %s bugged" % dsa)
+			logging.log (logging.WARNING, "DSA %s format not proper parsable" % dsa)
 			
 	root.appendChild (definitions)
 	
@@ -444,4 +448,5 @@
 	return doc
 
 def printOVALDefinitions (doc):
-	xml.dom.ext.PrettyPrint(doc)
+	if doc.getElementsByTagName("definitions")[0].hasChildNodes():
+		xml.dom.ext.PrettyPrint(doc)
\ No newline at end of file

Modified: trunk/tools/oval/parser/dsa.py
===================================================================
--- trunk/tools/oval/parser/dsa.py	2007-07-13 16:00:27 UTC (rev 77)
+++ trunk/tools/oval/parser/dsa.py	2007-07-13 17:22:34 UTC (rev 78)
@@ -83,7 +83,7 @@
 		result = versionpatern.search (line)
 		if result:
 			deb_ver = result.groups()[0]
-			#TODO: Second release section
+			
 			if data.has_key("packages"):
 				if data["packages"].has_key(deb_ver):
 					logging.log(logging.WARNING, "DSA %s contain second files section for release %s" % (dsa, deb_ver))




More information about the Oval-commits mailing list