[Oval-commits] r145 - trunk/oval-server/src/dba

Pavel Vinogradov blaze-guest at alioth.debian.org
Fri Aug 17 18:28:28 UTC 2007


Author: blaze-guest
Date: 2007-08-17 18:28:28 +0000 (Fri, 17 Aug 2007)
New Revision: 145

Modified:
   trunk/oval-server/src/dba/dba.py
Log:
Use autocommit mode

Modified: trunk/oval-server/src/dba/dba.py
===================================================================
--- trunk/oval-server/src/dba/dba.py	2007-08-17 16:43:00 UTC (rev 144)
+++ trunk/oval-server/src/dba/dba.py	2007-08-17 18:28:28 UTC (rev 145)
@@ -38,6 +38,7 @@
 	def __init__ (self, dbpath):
 		self.__dbPath = dbpath
 		self.__conn = db.connect(self.__dbPath)
+		self.__conn.isolation_level = None
 		self.cursor = self.__conn.cursor()
 		#Chech if tables exists
 		try:
@@ -63,13 +64,11 @@
 		self.cursor.execute ('SELECT vulnID FROM vulnerabilities WHERE vulnDSA = %d' % dsa)
 		if self.cursor.fetchall():
 			self.cursor.execute ('UPDATE  vulnerabilities set  vulnLocation = \'%s\', vulnTimestamp = \'%s\' WHERE vulnDSA = %d' % (location, timestamp, dsa))
-			self.__conn.commit()
 		else:
 			self.__insertDSA(dsa, location, timestamp)
 				
 	def __insertDSA(self, dsa, location, timestamp):
 		self.cursor.execute ('INSERT  INTO vulnerabilities (vulnDSA, vulnLocation, vulnTimestamp) VALUES (%d, \'%s\', \'%s\')' % (dsa, location, timestamp))
-		self.__conn.commit()
 		
 	def addAgent(self, agentName):
 		self.cursor.execute ('SELECT agentID FROM agents WHERE agentName = \'%s\'' % agentName)
@@ -82,7 +81,16 @@
 	def getDSAreport (self):
 		self.cursor.execute ('SELECT vulnDSA, vulnTimestamp, vulnLocation from vulnerabilities;')
 		return (self.cursor.fetchall())
+	
+	def makeDefList (self, agentID):
+		self.cursor.execute (
+				"""SELECT vulnLocation FROM vulnerabilities 
+					LEFT JOIN affected 
+					ON vulnerabilities.vulnDSA = affected.vulnDSA 
+					WHERE vulnerabilities.vulnTimestamp > affected.vulnTimestamp OR affected.vulnTimestamp IS NULL;
+			""")
+		return self.cursor.fetchall()
 		
 if __name__ == "__main__":
 	sql = dba('/tmp/oval-server.db')
-	print sql.getDSAreport()
\ No newline at end of file
+	print sql.makeDefList(1)
\ No newline at end of file




More information about the Oval-commits mailing list