[Oval-commits] r36 - in trunk/tools: . oval/definition
Pavel Vinogradov
blaze-guest at alioth.debian.org
Fri Jun 8 19:06:40 UTC 2007
Author: blaze-guest
Date: 2007-06-08 19:06:40 +0000 (Fri, 08 Jun 2007)
New Revision: 36
Modified:
trunk/tools/TODO
trunk/tools/oval/definition/generator.py
trunk/tools/oval/definition/generator.pyc
Log:
Add tests, objects and states generations.
No tests caching support now.
Modified: trunk/tools/TODO
===================================================================
--- trunk/tools/TODO 2007-06-08 17:29:13 UTC (rev 35)
+++ trunk/tools/TODO 2007-06-08 19:06:40 UTC (rev 36)
@@ -9,9 +9,7 @@
Write wml parser for extract title and description about definitions
oval/definition/generator.py:
- Tests generation
- Objects generation
- States generation
Fill metadata section
+ Rewrite tests generation conform to linux-definition-schema
\ No newline at end of file
Modified: trunk/tools/oval/definition/generator.py
===================================================================
--- trunk/tools/oval/definition/generator.py 2007-06-08 17:29:13 UTC (rev 35)
+++ trunk/tools/oval/definition/generator.py 2007-06-08 19:06:40 UTC (rev 36)
@@ -25,7 +25,7 @@
return (element)
-namespace = "oval:org.debian.oval:"
+namespace = "oval:org.debian.oval"
tests = __createXMLElement ("tests")
objects = __createXMLElement ("objects")
states = __createXMLElement ("states")
@@ -38,46 +38,106 @@
global testsCurId, objectsCurId, statesCurId
if type == "test":
- result = (testsCurId, "%s:tst:%d" % (namespace, testsCurId))
+ result = "%s:tst:%d" % (namespace, testsCurId)
testsCurId += 1
if type == "object":
- result = (objectsCurId, "%s:obj:%d" % (namespace, objectsCurId))
+ result = "%s:obj:%d" % (namespace, objectsCurId)
objectsCurId += 1
if type == "state":
- result = (statesCurId, "%s:ste:%d" % (namespace, statesCurId))
+ result = "%s:ste:%d" % (namespace, statesCurId)
statesCurId += 1
return (result)
-def __createTest(id_ref, name, version):
+def __createDPKGTest(name, version):
+ ref = __getNewId ("test")
test = __createXMLElement("dpkginfo_test",
- attrs={"id":id_ref, "version":"1", "check":"all",
- "comment":"",
+ attrs={"id":ref, "version":"1", "check":"all",
"xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
objectId = __getNewId ("object");
- test.appendChild ( __createXMLElement("object", attrs={"object_ref" : objectId[1]}))
+ test.appendChild ( __createXMLElement("object", attrs={"object_ref" : objectId}))
stateId = __getNewId ("state")
- test.appendChild ( __createXMLElement("state", attrs={"state_ref" : stateId[1]}))
+ test.appendChild ( __createXMLElement("state", attrs={"state_ref" : stateId}))
tests.appendChild(test)
object = __createXMLElement("dpkginfo_object",
- attrs={"id":objectId[1], "version":"1",
+ attrs={"id":objectId, "version":"1",
"xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
object.appendChild ( __createXMLElement ("name", name))
objects.appendChild (object)
state = __createXMLElement("dpkginfo_state",
- attrs={"id":stateId[1], "version":"1",
+ attrs={"id":stateId, "version":"1",
"xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
- object.appendChild ( __createXMLElement
+ state.appendChild ( __createXMLElement
("evr", version,
{"datatype":"evr_string", "operation":"less than"}))
+ states.appendChild (state)
+
+ return (ref)
+
+def __createReleaseTest(version):
+ ref = __getNewId("test")
+
+ test = __createXMLElement("dpkginfo_test",
+ attrs={"id":ref, "version":"1", "check":"all",
+ "xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
+
+ objectId = __getNewId ("object");
+ test.appendChild ( __createXMLElement("object", attrs={"object_ref" : objectId}))
+ stateId = __getNewId ("state")
+ test.appendChild ( __createXMLElement("state", attrs={"state_ref" : stateId}))
+ tests.appendChild(test)
+
+ object = __createXMLElement("dpkginfo_object",
+ attrs={"id":objectId, "version":"1",
+ "xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
+ object.appendChild ( __createXMLElement ("name", "debian_version"))
objects.appendChild (object)
+ state = __createXMLElement("dpkginfo_state",
+ attrs={"id":stateId, "version":"1",
+ "xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
+ state.appendChild ( __createXMLElement
+ ("evr", version,
+ {"datatype":"evr_string", "operation":"equals"}))
+ states.appendChild (state)
+
+ return (ref)
+
+def __createArchTest(arch):
+
+ ref = __getNewId ("test")
+ test = __createXMLElement("dpkginfo_test",
+ attrs={"id":ref, "version":"1", "check":"all",
+ "xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
+
+ objectId = __getNewId ("object");
+ test.appendChild ( __createXMLElement("object", attrs={"object_ref" : objectId}))
+ stateId = __getNewId ("state")
+ test.appendChild ( __createXMLElement("state", attrs={"state_ref" : stateId}))
+ tests.appendChild(test)
+
+ object = __createXMLElement("dpkginfo_object",
+ attrs={"id":objectId, "version":"1",
+ "xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
+ object.appendChild ( __createXMLElement ("name", "architecture"))
+ objects.appendChild (object)
+
+ state = __createXMLElement("dpkginfo_state",
+ attrs={"id":stateId, "version":"1",
+ "xmlns":"http://oval.mitre.org/XMLSchema/oval-deinitions-5#linux"})
+ state.appendChild ( __createXMLElement
+ ("evr", arch,
+ {"datatype":"evr_string", "operation":"equals"}))
+ states.appendChild (state)
+
+ return (ref)
+
def __createGeneratorHeader ():
"""
Create OVAL definitions XML generator element.
@@ -97,7 +157,7 @@
def createPlatformDefinition (version, data, dsa):
softwareCriteria = __createXMLElement ("criteria", attrs = {"comment" : "Release section", "operator" : "AND"})
- softwareCriteria.appendChild ( __createXMLElement ("criterion", attrs={"test_ref" : "rrt-XXX", "comment" : "Debian %s is installed" % version}))
+ softwareCriteria.appendChild ( __createXMLElement ("criterion", attrs={"test_ref" : __createReleaseTest(version), "comment" : "Debian %s is installed" % version}))
archCriteria = __createXMLElement ("criteria", attrs = {"comment" : "Architecture section", "operator" : "OR"})
@@ -105,11 +165,11 @@
if data.has_key ("all"):
archIndepCriteria = __createXMLElement ("criteria", attrs={"comment" : "Architecture independet section", "operation" : "AND"})
- archIndepCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : "rut-XXX", "comment" : "all architecture"}))
+ archIndepCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createArchTest("all"), "comment" : "all architecture"}))
packageCriteria = __createXMLElement ("criteria", attrs={"comment" : "Packages section", "operation" : "OR"})
for pkg in data["all"].keys():
- packageCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : "rvt-XXX", "comment" : "%s DPKG is earlier than %s" % (pkg, data["all"][pkg][0])}))
+ packageCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createDPKGTest(pkg, data["all"][pkg][0]), "comment" : "%s DPKG is earlier than %s" % (pkg, data["all"][pkg][0])}))
archIndepCriteria.appendChild (packageCriteria)
archCriteria.appendChild (archIndepCriteria)
@@ -143,13 +203,13 @@
supportedArchCriteria = __createXMLElement ("criteria", attrs={"comment" : "Supported architectures section", "operation" : "OR"})
for arch in data.keys():
if arch != "all":
- supportedArchCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : "rut-XXX", "comment" : "%s architecture" % arch}))
+ supportedArchCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createArchTest(arch), "comment" : "%s architecture" % arch}))
archDependCriteria.appendChild (supportedArchCriteria)
packageCriteria = __createXMLElement ("criteria", attrs={"comment" : "Packages section", "operation" : "OR"})
for bpkg in data[stdArch].keys():
- packageCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : "rvt-XXX", "comment" : "%s DPKG is earlier than %s" % (bpkg, data[stdArch][bpkg][0])}))
+ packageCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createDPKGTest(bpkg, data[stdArch][bpkg][0]), "comment" : "%s DPKG is earlier than %s" % (bpkg, data[stdArch][bpkg][0])}))
archDependCriteria.appendChild (packageCriteria)
archCriteria.appendChild (archDependCriteria)
@@ -254,6 +314,13 @@
definitions.appendChild (createDefinition(dsa, dsare))
root.appendChild (definitions)
+
+ root.appendChild(tests)
+ root.appendChild(objects)
+ root.appendChild(states)
+
+
+
return doc
def printOVALDefinitions (doc):
Modified: trunk/tools/oval/definition/generator.pyc
===================================================================
(Binary files differ)
More information about the Oval-commits
mailing list