[Oval-commits] r55 - trunk/tools/oval/definition

Pavel Vinogradov blaze-guest at alioth.debian.org
Sun Jun 17 13:34:42 UTC 2007


Author: blaze-guest
Date: 2007-06-17 13:34:42 +0000 (Sun, 17 Jun 2007)
New Revision: 55

Modified:
   trunk/tools/oval/definition/generator.py
Log:
Simplify architecture generation


Modified: trunk/tools/oval/definition/generator.py
===================================================================
--- trunk/tools/oval/definition/generator.py	2007-06-17 13:15:45 UTC (rev 54)
+++ trunk/tools/oval/definition/generator.py	2007-06-17 13:34:42 UTC (rev 55)
@@ -108,6 +108,7 @@
 objectsCurId = 1
 statesCurId = 1
 
+releaseArchHash = {"2.0" : 2, "2.1" : 4, "2.2":  6, "3.0" : 11, "3.1" : 12, "4.0" : 11}
 testsHash = {"arch" : {}, "release": {}, "dpkgObj": {}, "dpkgSte": {}} 
 
 def __getNewId (type):
@@ -210,10 +211,10 @@
 
 	return (generator)
 
-def createPlatformDefinition (version, data, dsa):
+def createPlatformDefinition (release, data, dsa):
 	
 	softwareCriteria = __createXMLElement ("criteria", attrs = {"comment" : "Release section", "operator" : "AND"})
-	softwareCriteria.appendChild ( __createXMLElement ("criterion", attrs={"test_ref" : __createTest("release", version), "comment" : "Debian %s is installed" % version}))
+	softwareCriteria.appendChild ( __createXMLElement ("criterion", attrs={"test_ref" : __createTest("release", release), "comment" : "Debian %s is installed" % release}))
 		
 	archCriteria = __createXMLElement ("criteria", attrs = {"comment" : "Architecture section", "operator" : "OR"})
 
@@ -247,19 +248,23 @@
 		di = diff.getDiffer()
 		
 		if (len(eq)):
-			archDependCriteria = __createXMLElement ("criteria", attrs={"comment" : "Architecture depended section", "operation" : "AND"})	
-			
-			supportedArchCriteria = __createXMLElement ("criteria", attrs={"comment" : "Supported architectures section", "operation" : "OR"})
-			for arch in diff.getArchs():
-				supportedArchCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createTest("arch", arch), "comment" : "%s architecture" % arch}))
-				archDependCriteria.appendChild (supportedArchCriteria)
+			if len(diff.getArchs()) != releaseArchHash[release]:
+				archDependCriteria = __createXMLElement ("criteria", attrs={"comment" : "Architecture depended section", "operation" : "AND"})	
+				
+				supportedArchCriteria = __createXMLElement ("criteria", attrs={"comment" : "Supported architectures section", "operation" : "OR"})
+				for arch in diff.getArchs():
+					supportedArchCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createTest("arch", arch), "comment" : "%s architecture" % arch}))
+					archDependCriteria.appendChild (supportedArchCriteria)
 		
 			packageCriteria = __createXMLElement ("criteria", attrs={"comment" : "Packages section", "operation" : "OR"})
 			for bpkg in eq.keys():
 				packageCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createDPKGTest(bpkg, eq[bpkg]), "comment" : "%s DPKG is earlier than %s" % (bpkg, eq[bpkg])}))
-						
-			archDependCriteria.appendChild (packageCriteria)
-			archCriteria.appendChild (archDependCriteria)
+			
+			if len(diff.getArchs()) != releaseArchHash[release]:			
+				archDependCriteria.appendChild (packageCriteria)
+				archCriteria.appendChild (archDependCriteria)
+			else:
+				archCriteria.appendChild (packageCriteria)
 		
 	#Supported architectures have different bpackages. On this stage we generate package list for each architecture
 	if len(di):




More information about the Oval-commits mailing list