[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