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

Pavel Vinogradov blaze-guest at alioth.debian.org
Fri Jun 15 17:34:11 UTC 2007


Author: blaze-guest
Date: 2007-06-15 17:34:11 +0000 (Fri, 15 Jun 2007)
New Revision: 51

Modified:
   trunk/tools/TODO
   trunk/tools/oval/definition/generator.py
   trunk/tools/oval/parser/dsa.py
Log:
Bug fixes and code cleanup

Modified: trunk/tools/TODO
===================================================================
--- trunk/tools/TODO	2007-06-15 16:34:43 UTC (rev 50)
+++ trunk/tools/TODO	2007-06-15 17:34:11 UTC (rev 51)
@@ -4,5 +4,4 @@
 		
 oval/definition/generator.py:
 	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-15 16:34:43 UTC (rev 50)
+++ trunk/tools/oval/definition/generator.py	2007-06-15 17:34:11 UTC (rev 51)
@@ -90,7 +90,7 @@
 					self.__dictAdd (differC, arch, package, equalC[package])
 				del (equalC[package])
 		
-		if len(self.getEqual()) - len(equalC) < len(self.getEqual())/4:
+		if len(self.getEqual()) - len(equalC) <= len(self.getEqual())/4:
 			self.__equalArch.append(architecture)
 			self.__equal = equalC
 			self.__differ = differC
@@ -246,34 +246,36 @@
 		eq = diff.getEqual()
 		di = diff.getDiffer()
 		
-		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"})
+		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)
 		
-		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)
-	
+			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)
+		
 	#Supported architectures have different bpackages. On this stage we generate package list for each architecture
 	if len(di):
-		archDependCriteria = __createXMLElement ("criteria", attrs={"comment" : "Architecture depended section", "operation" : "OR"})
+		archDependCriteria = __createXMLElement ("criteria", attrs={"comment" : "Architecture depended section", "operation" : "AND"})
 			
 		for (key, value) in di.iteritems():
 			supportedPlatformCriteria = __createXMLElement ("criteria", attrs={"comment" : "Supported platform section", "operation" : "AND"})
 			supportedPlatformCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createTest("arch", key), "comment" : "%s architecture" % key}))
+		
 			packageCriteria = __createXMLElement ("criteria", attrs={"comment" : "Packages section", "operation" : "OR"})
 					
 			for bpkg in di[key].keys():
 				packageCriteria.appendChild ( __createXMLElement ("criterion", attrs = {"test_ref" : __createDPKGTest(bpkg, di[key][bpkg]), "comment" : "%s DPKG is earlier than %s" % (bpkg, di[key][bpkg])}))
-			supportedPlatformCriteria.appendChild (packageCriteria)
-			archDependCriteria.appendChild (supportedPlatformCriteria)
-					
+				supportedPlatformCriteria.appendChild (packageCriteria)
+		
+		archDependCriteria.appendChild (supportedPlatformCriteria)
 		archCriteria.appendChild (archDependCriteria)	
 		 
 #	# We must check that bpackages for all supported architectures is qeuals

Modified: trunk/tools/oval/parser/dsa.py
===================================================================
--- trunk/tools/oval/parser/dsa.py	2007-06-15 16:34:43 UTC (rev 50)
+++ trunk/tools/oval/parser/dsa.py	2007-06-15 17:34:11 UTC (rev 51)
@@ -78,11 +78,11 @@
 				(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
+#					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}
 	




More information about the Oval-commits mailing list