[Oval-commits] r77 - in trunk/tools/oval: definition parser
Pavel Vinogradov
blaze-guest at alioth.debian.org
Fri Jul 13 16:00:27 UTC 2007
Author: blaze-guest
Date: 2007-07-13 16:00:27 +0000 (Fri, 13 Jul 2007)
New Revision: 77
Modified:
trunk/tools/oval/definition/generator.py
trunk/tools/oval/parser/dsa.py
Log:
Fix handling of bugged dsa data files.
Modified: trunk/tools/oval/definition/generator.py
===================================================================
--- trunk/tools/oval/definition/generator.py 2007-07-12 17:57:59 UTC (rev 76)
+++ trunk/tools/oval/definition/generator.py 2007-07-13 16:00:27 UTC (rev 77)
@@ -198,6 +198,9 @@
return Generated XML fragment
"""
+ #Raise excetion if we receive too small data
+ if len(data) == 0:
+ raise Exception
softwareCriteria = __createXMLElement ("criteria", attrs = {"comment" : "Release section", "operator" : "AND"})
softwareCriteria.appendChild ( __createXMLElement ("criterion", attrs={"test_ref" : __createTest("release", release), "comment" : "Debian %s is installed" % release}))
@@ -344,7 +347,6 @@
dsa -- DSA dentificator
dsaref -- DSA parsed data
"""
-
doc = xml.dom.minidom.Document ()
### Definition block: Metadata, Notes, Criteria
@@ -363,6 +365,7 @@
affected.appendChild ( __createXMLElement ("product", dsaref.get("package")))
except:
logging.log (logging.WARNING, "packages None in DSA " + dsa)
+ raise Exception
metadata.appendChild (affected)
### Definition : Metadata : Affected : END ###
@@ -377,7 +380,7 @@
else:
logging.log(logging.WARNING, "Secrefs None in DSA " + dsa)
- #TODO: this could be extracted from the wml file....
+ #TODO: move this info to other place
metadata.appendChild ( __createXMLElement ("description", dsaref["moreinfo"]) )
definition.appendChild ( metadata )
@@ -427,8 +430,11 @@
keyids = dsaref.keys()
keyids.sort()
for dsa in keyids:
- definitions.appendChild (createDefinition(dsa, dsaref[dsa]))
-
+ try:
+ definitions.appendChild (createDefinition(dsa, dsaref[dsa]))
+ except Exception:
+ logging.log (logging.WARNING, "DSA %s bugged" % dsa)
+
root.appendChild (definitions)
root.appendChild(tests)
Modified: trunk/tools/oval/parser/dsa.py
===================================================================
--- trunk/tools/oval/parser/dsa.py 2007-07-12 17:57:59 UTC (rev 76)
+++ trunk/tools/oval/parser/dsa.py 2007-07-13 16:00:27 UTC (rev 77)
@@ -83,8 +83,12 @@
result = versionpatern.search (line)
if result:
deb_ver = result.groups()[0]
+ #TODO: Second release section
if data.has_key("packages"):
- data["packages"][deb_ver] = {}
+ if data["packages"].has_key(deb_ver):
+ logging.log(logging.WARNING, "DSA %s contain second files section for release %s" % (dsa, deb_ver))
+ else:
+ data["packages"][deb_ver] = {}
else:
data["packages"] = {deb_ver: {}}
# Binary packages are pushed into array
@@ -93,7 +97,7 @@
# (that should be fixed)
if data.has_key("package") and deb_ver:
#urlpatern = re.compile (r'fileurl [\w:/.]+/([^/]*?)\.deb[ >]')
- urlpatern = re.compile (r'fileurl [\w:/.\-+]+/([\w\-.+~:]+)\.deb[^i]')
+ urlpatern = re.compile (r'fileurl [\w:/.\-+]+/([\w\-.+~]+)\.deb[^i]')
result = urlpatern.search (line)
if result:
(package, version, architecture) = result.groups()[0].split("_")
More information about the Oval-commits
mailing list