[Oval-commits] r311 - in trunk/oval-server/oval/dsa2oval: definition parser

Pavel Vinogradov blaze-guest at alioth.debian.org
Fri Nov 30 19:15:06 UTC 2007


Author: blaze-guest
Date: 2007-11-30 19:15:05 +0000 (Fri, 30 Nov 2007)
New Revision: 311

Modified:
   trunk/oval-server/oval/dsa2oval/definition/generator.py
   trunk/oval-server/oval/dsa2oval/parser/wml.py
Log:
Update wml-parser. Correct extraction of short description.
See http://lists.alioth.debian.org/pipermail/oval-devel/2007-July/000026.html


Modified: trunk/oval-server/oval/dsa2oval/definition/generator.py
===================================================================
--- trunk/oval-server/oval/dsa2oval/definition/generator.py	2007-11-18 19:54:31 UTC (rev 310)
+++ trunk/oval-server/oval/dsa2oval/definition/generator.py	2007-11-30 19:15:05 UTC (rev 311)
@@ -430,7 +430,7 @@
 		
 		### Definition : Metadata : title, affected, reference, description ###
 		metadata = self.__createXMLElement ("metadata")
-		metadata.appendChild (self.__createXMLElement ("title", dsaref["description"]))
+		metadata.appendChild (self.__createXMLElement ("title", dsaref["title"]))
 	
 		### Definition : Metadata : Affected : platform, product ###
 		affected = self.__createXMLElement ("affected", attrs = {"family" : "unix"})
@@ -449,7 +449,7 @@
 				metadata.appendChild ( self.__createXMLElement ("reference", attrs = {"source" : source, "ref_id" : ref_id, "ref_url" : "http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s" % ref_id}) )
 		
 		#TODO: move this info to other place
-		metadata.appendChild ( self.__createXMLElement ("description", "What information can i put there?"))
+		metadata.appendChild ( self.__createXMLElement ("description", dsaref["description"]))
 		debianMetadata = self.__createXMLElement ("debian")
 		if dsaref.has_key("date"):
 			debianMetadata.appendChild ( self.__createXMLElement ("date", dsaref["date"]) )
@@ -556,4 +556,4 @@
 		xml.dom.ext.PrettyPrint(self.objects)
 		xml.dom.ext.PrettyPrint(self.states)
 		
-		print "</oval_definitions>"
\ No newline at end of file
+		print "</oval_definitions>"

Modified: trunk/oval-server/oval/dsa2oval/parser/wml.py
===================================================================
--- trunk/oval-server/oval/dsa2oval/parser/wml.py	2007-11-18 19:54:31 UTC (rev 310)
+++ trunk/oval-server/oval/dsa2oval/parser/wml.py	2007-11-30 19:15:05 UTC (rev 311)
@@ -54,7 +54,7 @@
 			descrpatern = re.compile (r'description>(.*?)</define-tag>')
 			result = descrpatern.search (line)
 			if result:
-				data["description"] = result.groups()[0]
+				data["title"] = result.groups()[0]
 				continue
 				
 			sinfopatern = re.compile (r'<define-tag moreinfo>(.*?)')
@@ -66,7 +66,7 @@
 			
 			einfopatern = re.compile (r'</define-tag>')
 			if moreinfo and einfopatern.search (line):
-				data["moreinfo"] = __parseMoreinfo(data["moreinfo"])
+				(data["description"], data["moreinfo"]) = __parseMoreinfo(data["moreinfo"])
  				moreinfo = False
 				continue
 			
@@ -82,13 +82,18 @@
 def __parseMoreinfo (info):
 	""" Remove unnecessary information form moreinfo tag"""
 
+	description = "None"
+	moreinfo = ""
+
 	p = re.compile ("<p>(.*?)</p>", re.DOTALL)
 	paragraphs = [m.groups()[0]  for m in re.finditer(p, info, re.DOTALL)]
-	result = ""
+	
+	if paragraphs:
+		description = paragraphs[0]
 
-	for par in paragraphs:
+	for par in paragraphs[1:]:
 		if re.match(re.compile("For the .* distribution"), par):
 			break
-		result += "\n" + par
+		moreinfo += "\n" + par
 	
-	return result
+	return (description, moreinfo)




More information about the Oval-commits mailing list