[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