[Oval-commits] r42 - in trunk/tools/oval: . parser

Pavel Vinogradov blaze-guest at alioth.debian.org
Sun Jun 10 17:01:58 UTC 2007


Author: blaze-guest
Date: 2007-06-10 17:01:57 +0000 (Sun, 10 Jun 2007)
New Revision: 42

Added:
   trunk/tools/oval/parser/dsa.py
   trunk/tools/oval/parser/wml.py
Removed:
   trunk/tools/oval/parser/parser.py
Modified:
   trunk/tools/oval/__init__.py
   trunk/tools/oval/parser/__init__.py
Log:
Modify packages structure

Modified: trunk/tools/oval/__init__.py
===================================================================
--- trunk/tools/oval/__init__.py	2007-06-10 16:53:56 UTC (rev 41)
+++ trunk/tools/oval/__init__.py	2007-06-10 17:01:57 UTC (rev 42)
@@ -7,6 +7,6 @@
 #
 ######################################################################
 
-__all__ = ['dsa', 'definition']
+__all__ = ['parser', 'definition']
 
 

Modified: trunk/tools/oval/parser/__init__.py
===================================================================
--- trunk/tools/oval/parser/__init__.py	2007-06-10 16:53:56 UTC (rev 41)
+++ trunk/tools/oval/parser/__init__.py	2007-06-10 17:01:57 UTC (rev 42)
@@ -7,6 +7,6 @@
 #
 ######################################################################
 
-__all__ = ['parser']
+__all__ = ['dsa', 'wml']
 
 

Copied: trunk/tools/oval/parser/dsa.py (from rev 41, trunk/tools/oval/parser/parser.py)
===================================================================
--- trunk/tools/oval/parser/dsa.py	                        (rev 0)
+++ trunk/tools/oval/parser/dsa.py	2007-06-10 17:01:57 UTC (rev 42)
@@ -0,0 +1,86 @@
+import re
+import os
+import logging
+
+# Format of data files is:
+#<define-tag pagetitle>DSA-###-# PACKAGE</define-tag>                                                                                          
+#<define-tag report_date>yyyy-mm-dd</define-tag>                                                                                               
+#<define-tag secrefs>CAN|CVE-XXXX-XXXX</define-tag>                                                                                            
+#<define-tag packages>PACKAGE</define-tag>                                                                                                     
+#<define-tag isvulnerable>yes|no</define-tag>                                                                                                  
+#<define-tag fixed>yes|no</define-tag>  
+
+def parseDSAFile (path):
+
+	data = {}
+	deb_ver = None
+	
+	filename = os.path.basename (path)
+
+	patern = re.compile(r'dsa-(\d+)')
+	result = patern.search(filename)
+	if result:
+		dsa = result.groups()[0]
+	else:
+		logging.log(logging.WARNING, "File %s does not look like a proper DSA, not checking" % filename)
+		return (None)
+
+	logging.log (logging.DEBUG, "Parsing DSA %s from file %s" % (dsa, filename))
+
+	dsaFile = open(path)
+	
+	for line in dsaFile:
+		datepatern = re.compile (r'report_date>([\d-]+)</define-tag>')
+		result = datepatern.search (line)
+		if result:
+			data["date"] = result.groups()[0]
+		
+		refspatern = re.compile (r'secrefs>(.*?)</define-tag>')
+		result = refspatern.search (line)
+		if result:
+			data["secrefs"] = result.groups()[0]
+			logging.log(logging.DEBUG, "Extracted security references: " + data["secrefs"])
+
+		pakpatern = re.compile (r'packages>(.*?)</define-tag>')
+		result = pakpatern.search (line)
+		if result:
+			data["package"] = result.groups()[0]
+
+		vulpatern = re.compile (r'isvulnerable>(.*?)</define-tag>')
+		result = vulpatern.search (line)
+		if result:
+			data["vulnarable"] = result.groups()[0]
+
+		fixpatern = re.compile (r'fixed>(.*?)</define-tag>')
+		result = fixpatern.search (line)
+		if result:
+			data["fixed"] = result.groups()[0]
+
+		versionpatern = re.compile (r'<h3>Debian GNU/Linux (\d.\d) \((.*?)\)</h3>')
+		result = versionpatern.search (line)
+		if result:
+			deb_ver = result.groups()[0]
+			if data.has_key("packages"):
+				data["packages"][deb_ver] = {}
+			else:
+				data["packages"] = {deb_ver: {}}
+		# Binary packages are pushed into array
+		# Those are prepended by fileurls
+		# TODO: Packages do _NOT_ include epochs 
+		# (that should be fixed)
+		if data.has_key("package") and deb_ver:
+			urlpatern = re.compile (r'fileurl [\w:/.]+%s/(.*?)\.deb' % data["package"])
+			result = urlpatern.search (line)
+			if result:
+				(package, version, architecture) = result.groups()[0].split("_")
+					
+				if data["packages"][deb_ver].has_key(architecture):
+					if data["packages"][deb_ver][architecture].has_key(package):
+						if not version in data["packages"][deb_ver][architecture][package]:
+							data["packages"][deb_ver][architecture][package].append(version)
+					else:
+						data["packages"][deb_ver][architecture][package] = [version]
+				else:
+					data["packages"][deb_ver][architecture] = {package : [version]}
+	
+	return ({dsa : data})

Deleted: trunk/tools/oval/parser/parser.py
===================================================================
--- trunk/tools/oval/parser/parser.py	2007-06-10 16:53:56 UTC (rev 41)
+++ trunk/tools/oval/parser/parser.py	2007-06-10 17:01:57 UTC (rev 42)
@@ -1,86 +0,0 @@
-import re
-import os
-import logging
-
-# Format of data files is:
-#<define-tag pagetitle>DSA-###-# PACKAGE</define-tag>                                                                                          
-#<define-tag report_date>yyyy-mm-dd</define-tag>                                                                                               
-#<define-tag secrefs>CAN|CVE-XXXX-XXXX</define-tag>                                                                                            
-#<define-tag packages>PACKAGE</define-tag>                                                                                                     
-#<define-tag isvulnerable>yes|no</define-tag>                                                                                                  
-#<define-tag fixed>yes|no</define-tag>  
-
-def parseDSAFile (path):
-
-	data = {}
-	deb_ver = None
-	
-	filename = os.path.basename (path)
-
-	patern = re.compile(r'dsa-(\d+)')
-	result = patern.search(filename)
-	if result:
-		dsa = result.groups()[0]
-	else:
-		logging.log(logging.WARNING, "File %s does not look like a proper DSA, not checking" % filename)
-		return (None)
-
-	logging.log (logging.DEBUG, "Parsing DSA %s from file %s" % (dsa, filename))
-
-	dsaFile = open(path)
-	
-	for line in dsaFile:
-		datepatern = re.compile (r'report_date>([\d-]+)</define-tag>')
-		result = datepatern.search (line)
-		if result:
-			data["date"] = result.groups()[0]
-		
-		refspatern = re.compile (r'secrefs>(.*?)</define-tag>')
-		result = refspatern.search (line)
-		if result:
-			data["secrefs"] = result.groups()[0]
-			logging.log(logging.DEBUG, "Extracted security references: " + data["secrefs"])
-
-		pakpatern = re.compile (r'packages>(.*?)</define-tag>')
-		result = pakpatern.search (line)
-		if result:
-			data["package"] = result.groups()[0]
-
-		vulpatern = re.compile (r'isvulnerable>(.*?)</define-tag>')
-		result = vulpatern.search (line)
-		if result:
-			data["vulnarable"] = result.groups()[0]
-
-		fixpatern = re.compile (r'fixed>(.*?)</define-tag>')
-		result = fixpatern.search (line)
-		if result:
-			data["fixed"] = result.groups()[0]
-
-		versionpatern = re.compile (r'<h3>Debian GNU/Linux (\d.\d) \((.*?)\)</h3>')
-		result = versionpatern.search (line)
-		if result:
-			deb_ver = result.groups()[0]
-			if data.has_key("packages"):
-				data["packages"][deb_ver] = {}
-			else:
-				data["packages"] = {deb_ver: {}}
-		# Binary packages are pushed into array
-		# Those are prepended by fileurls
-		# TODO: Packages do _NOT_ include epochs 
-		# (that should be fixed)
-		if data.has_key("package") and deb_ver:
-			urlpatern = re.compile (r'fileurl [\w:/.]+%s/(.*?)\.deb' % data["package"])
-			result = urlpatern.search (line)
-			if result:
-				(package, version, architecture) = result.groups()[0].split("_")
-					
-				if data["packages"][deb_ver].has_key(architecture):
-					if data["packages"][deb_ver][architecture].has_key(package):
-						if not version in data["packages"][deb_ver][architecture][package]:
-							data["packages"][deb_ver][architecture][package].append(version)
-					else:
-						data["packages"][deb_ver][architecture][package] = [version]
-				else:
-					data["packages"][deb_ver][architecture] = {package : [version]}
-	
-	return ({dsa : data})

Added: trunk/tools/oval/parser/wml.py
===================================================================
--- trunk/tools/oval/parser/wml.py	                        (rev 0)
+++ trunk/tools/oval/parser/wml.py	2007-06-10 17:01:57 UTC (rev 42)
@@ -0,0 +1,10 @@
+import re
+import os
+import logging
+
+# Format of wml files is:
+#<define-tag description>DESCRIPTION</define-tag>
+#<define-tag moreinfo>Multiline information</define-tag>
+
+def parseWMLFile (path):
+    pass
\ No newline at end of file




More information about the Oval-commits mailing list