[Oval-commits] r153 - trunk/oval-server

Pavel Vinogradov blaze-guest at alioth.debian.org
Mon Aug 20 03:46:56 UTC 2007


Author: blaze-guest
Date: 2007-08-20 03:46:56 +0000 (Mon, 20 Aug 2007)
New Revision: 153

Modified:
   trunk/oval-server/oval-server.py
Log:
Implement multithreading

Modified: trunk/oval-server/oval-server.py
===================================================================
--- trunk/oval-server/oval-server.py	2007-08-20 03:37:45 UTC (rev 152)
+++ trunk/oval-server/oval-server.py	2007-08-20 03:46:56 UTC (rev 153)
@@ -1,11 +1,14 @@
 from ConfigParser import SafeConfigParser
+from threading import Thread
 import os, logging
 import time
 
-class httpThread:
+class httpThread(Thread):
 	__status = None
 	
 	def __init__ (self, config, logger):
+		Thread.__init__(self)
+		
 		self.type = config['type']
 		self.ip = config['ip']
 		self.port = int(config['port'])
@@ -17,21 +20,23 @@
 			self.logger = logger
 			self.logger.info('httpThread: Run local server on %s:%d in %s' % (self.ip,  self.port, self.workdir))
 	
-	def startThread (self):
+	def run (self):
 		self.__status = 1
-		self.run ()
+		self.server.serve_forever()
 		
-	def stopThread (self):
+	def stop (self):
 		self.__status = None
 		
-	def run (self):
-		self.server.serve_forever()
+	def __del__(self):
+		self.logger.info('httpThread: Stop local server')
 		
-class syncThread:
+class syncThread(Thread):
 	
 	__status = None
 	
 	def __init__(self, config, logger):
+		Thread.__init__(self)
+		
 		self.type = config['type']
 		self.source = config['source']
 		self.storage = config['dsa_storage']
@@ -44,20 +49,17 @@
 			self.syncer =   dirSync(self.source, self.storage, self.logger)
 			self.logger.info('syncThread: Run local updater %s with: %s, %s' % (self.name, self.source, self.update_interval))
 			
-	def startThread (self):
+	def run (self):
 		self.__status = 1
-		self.run ()
 		
-	def stopThread (self):
-		self.__status = None
-		
-	def run (self):
-		while 1:
+		while self.__status:
 			self.logger.debug('syncThread: Run local sync')
 			self.syncer.sync()
 			self.logger.debug('syncThread: sleep')
 			time.sleep(60*1)
-	
+	def stop(self):
+				self.__status = None
+
 class mainThread:
 	
 	config = SafeConfigParser()
@@ -106,17 +108,21 @@
 	def run(self):
 		self.logger.info('mainThread.RUN')
 		
-#		#Create sync thread
-#		conf = self.readConfigSection('source')
-#		conf['dsa_storage'] = self.dsa_storage
-#		syncer = syncThread(conf, self.logger)
-#		syncer.startThread()
-#		
+		#Create sync thread
+		conf = self.readConfigSection('source')
+		conf['dsa_storage'] = self.dsa_storage
+		syncer = syncThread(conf, self.logger)
+		syncer.start()
+		
 		#Create http thread
 		conf = self.readConfigSection('server')
 		server = httpThread(conf, self.logger)
-		server.startThread()
+		server.start()
 		
+		#Wait all Threads
+		syncer.join()
+		server.join()
+		
 		self.logger.info('Shutting down')
 		logging.shutdown()
 		




More information about the Oval-commits mailing list