[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