[Oval-commits] r45 - in trunk/tools: . oval/definition oval/parser
Pavel Vinogradov
blaze-guest at alioth.debian.org
Tue Jun 12 14:16:44 UTC 2007
Author: blaze-guest
Date: 2007-06-12 14:16:43 +0000 (Tue, 12 Jun 2007)
New Revision: 45
Modified:
trunk/tools/TODO
trunk/tools/oval/definition/generator.py
trunk/tools/oval/parser/dsa.py
trunk/tools/oval/parser/wml.py
trunk/tools/parse-dsa-oval.py
Log:
Fill metadata section with data from WML file.
Modified: trunk/tools/TODO
===================================================================
--- trunk/tools/TODO 2007-06-12 13:12:24 UTC (rev 44)
+++ trunk/tools/TODO 2007-06-12 14:16:43 UTC (rev 45)
@@ -4,12 +4,8 @@
oval/dsa/parser.py:
Proper extraction of date from "repord_date>" DSA token
-
-oval/wml/parser.py
- Write wml parser for extract title and description about definitions
-
+
oval/definition/generator.py:
- Fill metadata section
Rewrite tests generation conform to linux-definition-schema
Optimize handling architectures with different bpackages
\ No newline at end of file
Modified: trunk/tools/oval/definition/generator.py
===================================================================
--- trunk/tools/oval/definition/generator.py 2007-06-12 13:12:24 UTC (rev 44)
+++ trunk/tools/oval/definition/generator.py 2007-06-12 14:16:43 UTC (rev 45)
@@ -20,7 +20,7 @@
element.attributes.setNamedItem (attribute)
if descr != None:
- description = doc.createTextNode (descr)
+ description = doc.createTextNode (descr.encode("utf8"))
element.appendChild (description)
return (element)
@@ -226,7 +226,7 @@
### Definition : Metadata : title, affected, reference, description ###
metadata = __createXMLElement ("metadata")
- metadata.appendChild (__createXMLElement ("title", "TODO"))
+ metadata.appendChild (__createXMLElement ("title", dsaref["description"]))
### Definition : Metadata : Affected : platform, product ###
affected = __createXMLElement ("affected", attrs = {"family" : "debian"})
@@ -251,7 +251,7 @@
logging.log(logging.WARNING, "Secrefs None in DSA " + dsa)
#TODO: this could be extracted from the wml file....
- metadata.appendChild ( __createXMLElement ("description", "TODO") )
+ metadata.appendChild ( __createXMLElement ("description", dsaref["moreinfo"]) )
definition.appendChild ( metadata )
### Definition : Notes ###
@@ -290,10 +290,8 @@
root.appendChild ( __createGeneratorHeader () )
definitions = doc.createElement ("definitions")
- for ref in dsaref:
- dsa = ref.keys()[0]
- dsare = ref.get(dsa)
- definitions.appendChild (createDefinition(dsa, dsare))
+ for (dsa, data) in dsaref.iteritems():
+ definitions.appendChild (createDefinition(dsa, data))
root.appendChild (definitions)
Modified: trunk/tools/oval/parser/dsa.py
===================================================================
--- trunk/tools/oval/parser/dsa.py 2007-06-12 13:12:24 UTC (rev 44)
+++ trunk/tools/oval/parser/dsa.py 2007-06-12 14:16:43 UTC (rev 45)
@@ -30,6 +30,7 @@
dsaFile = open(path)
for line in dsaFile:
+ line = line.decode('koi8-r')
datepatern = re.compile (r'report_date>([\d-]+)</define-tag>')
result = datepatern.search (line)
if result:
@@ -83,4 +84,4 @@
else:
data["packages"][deb_ver][architecture] = {package : [version]}
- return ({dsa : data})
+ return (dsa, data)
Modified: trunk/tools/oval/parser/wml.py
===================================================================
--- trunk/tools/oval/parser/wml.py 2007-06-12 13:12:24 UTC (rev 44)
+++ trunk/tools/oval/parser/wml.py 2007-06-12 14:16:43 UTC (rev 45)
@@ -28,8 +28,8 @@
wmlFile = open(path)
for line in wmlFile:
+ line = line.decode('koi8-r')
-
descrpatern = re.compile (r'description>(.*?)</define-tag>')
result = descrpatern.search (line)
if result:
@@ -55,4 +55,4 @@
except IOError:
logging.log (logging.ERROR, "Can't work with file %s" % path)
- return ({dsa : data})
\ No newline at end of file
+ return (dsa, data)
\ No newline at end of file
Modified: trunk/tools/parse-dsa-oval.py
===================================================================
--- trunk/tools/parse-dsa-oval.py 2007-06-12 13:12:24 UTC (rev 44)
+++ trunk/tools/parse-dsa-oval.py 2007-06-12 14:16:43 UTC (rev 45)
@@ -14,8 +14,9 @@
import oval.definition.generator
from oval.parser import dsa
+from oval.parser import wml
-dsaref = []
+dsaref = {}
def usage (prog = "parse-wml-oval.py"):
"""Print information about script flags and options"""
@@ -44,19 +45,32 @@
return (0)
for file in os.listdir (directory):
-
+
path = "%s/%s" % (directory, file)
-
+
logging.log (logging.DEBUG, "Checking %s (for %s at %s)" % (file, postfix, depth))
if os.access(path, os.R_OK) and os.path.isdir (path) and not os.path.islink (path) and file[0] != '.':
logging.log(logging.DEBUG, "Entering directory " + path)
parsedirs (path, postfix, depth-1)
-
+
if os.access(path, os.R_OK) and file.endswith(postfix) and file[0] != '.' and file[0] != '#':
result = dsa.parseFile (path)
if result:
- dsaref.append (result)
+ if dsaref.has_key (result[0]):
+ for (k, v) in result[1].iteritems():
+ dsaref[result[0]][k] = v
+ else:
+ dsaref[result[0]] = result[1]
+
+ if os.access(path, os.R_OK) and file.endswith(".wml") and file[0] != '.' and file[0] != '#':
+ result = wml.parseFile(path)
+ if result:
+ if dsaref.has_key (result[0]):
+ for (k, v) in result[1].iteritems():
+ dsaref[result[0]][k] = v
+ else:
+ dsaref[result[0]] = result[1]
return 0
if __name__ == "__main__":
More information about the Oval-commits
mailing list