[Oval-commits] r83 - in trunk/tools/oval: definition parser
Pavel Vinogradov
blaze-guest at alioth.debian.org
Sat Jul 14 08:05:58 UTC 2007
Author: blaze-guest
Date: 2007-07-14 08:05:58 +0000 (Sat, 14 Jul 2007)
New Revision: 83
Modified:
trunk/tools/oval/definition/generator.py
trunk/tools/oval/parser/dsa.py
Log:
Implement debian-specific space for moreinfo field as suggested by Jon Baker (http://oval.mitre.org/community/archives/ovaldeveloper/2007-07/msg00018.html)
Modified: trunk/tools/oval/definition/generator.py
===================================================================
--- trunk/tools/oval/definition/generator.py 2007-07-14 07:14:47 UTC (rev 82)
+++ trunk/tools/oval/definition/generator.py 2007-07-14 08:05:58 UTC (rev 83)
@@ -15,6 +15,9 @@
import sys
from oval.definition.differ import differ
+class DSAFormatException (Exception):
+ code = 1
+
def __createXMLElement (name, descr = None, attrs = {}):
"""
Create XML element with text descr and attributes attrs
@@ -203,7 +206,7 @@
"""
#Raise excetion if we receive too small data
if len(data) == 0:
- raise Exception
+ raise DSAFormatException
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}))
@@ -295,7 +298,7 @@
if len (dsaref["packages"]) == 0:
logging.log(logging.WARNING, "Release definition not well formatted")
- raise Exception
+ raise DSAFormatException
### Definition block: Metadata, Notes, Criteria
### TODO: Replace DSA id with unique id
@@ -313,7 +316,7 @@
affected.appendChild ( __createXMLElement ("product", dsaref.get("package")))
except:
logging.log (logging.WARNING, "packages None in DSA " + dsa)
- raise Exception
+ raise DSAFormatException
metadata.appendChild (affected)
### Definition : Metadata : Affected : END ###
@@ -329,7 +332,11 @@
logging.log(logging.WARNING, "Secrefs None in DSA " + dsa)
#TODO: move this info to other place
- metadata.appendChild ( __createXMLElement ("description", dsaref["moreinfo"]) )
+ metadata.appendChild ( __createXMLElement ("description", "What information can i put there?"))
+ debianMetadata = __createXMLElement ("debian")
+ debianMetadata.appendChild ( __createXMLElement ("date", dsaref["date"]) )
+ debianMetadata.appendChild ( __createXMLElement ("moreinfo", dsaref["moreinfo"]) )
+ metadata.appendChild (debianMetadata)
definition.appendChild ( metadata )
### Definition : Notes ###
@@ -380,7 +387,7 @@
for dsa in keyids:
try:
definitions.appendChild (createDefinition(dsa, dsaref[dsa]))
- except Exception:
+ except DSAFormatException:
logging.log (logging.WARNING, "DSA %s format not proper parsable" % dsa)
root.appendChild (definitions)
Modified: trunk/tools/oval/parser/dsa.py
===================================================================
--- trunk/tools/oval/parser/dsa.py 2007-07-14 07:14:47 UTC (rev 82)
+++ trunk/tools/oval/parser/dsa.py 2007-07-14 08:05:58 UTC (rev 83)
@@ -56,7 +56,8 @@
result = datepatern.search (line)
if result:
date = result.groups()[0]
- data["date"] = lambda (date): "-".join([(len(p) > 1 and p or "0"+p) for p in date.split("-")])
+ normDate = lambda (date): "-".join([(len(p) > 1 and p or "0"+p) for p in date.split("-")])
+ data["date"] = normDate(date)
refspatern = re.compile (r'secrefs>(.*?)</define-tag>')
result = refspatern.search (line)
More information about the Oval-commits
mailing list