[Erp5-report] r45920 guillaume.bottex - /slapos/trunk/util/slapos.tool.nosqltester_manager/...

nobody at svn.erp5.org nobody at svn.erp5.org
Sun Jun 19 19:03:23 CEST 2011


Author: guillaume.bottex
Date: Sun Jun 19 19:03:22 2011
New Revision: 45920

URL: http://svn.erp5.org?rev=45920&view=rev
Log:
Now uses thread instead of process, and fixes.

Modified:
    slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py

Modified: slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py?rev=45920&r1=45919&r2=45920&view=diff
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py [utf8] (original)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager/src/slapos/tool/nosqltester_manager/__init__.py [utf8] Sun Jun 19 19:03:22 2011
@@ -30,7 +30,7 @@
 from flask import Flask, abort, request, render_template, send_file
 from pkg_resources import iter_entry_points, get_distribution
 from logging import Formatter
-from threading import Lock
+from threading import Thread
 import sys, os, getopt, tarfile, tempfile, bz2
 import logging, logging.handlers
 import urllib, urllib2
@@ -187,9 +187,9 @@ class NoSQLTesterManager(object):
     :param format: compression format. (with a leading *'.'*)
     :type format: str.
     """
-    if format == ".bz2":
+    if format == "bz2":
       return bz2.decompress(cdata)
-    elif format == ".zip":
+    elif format == "zip":
       raise NotImplementedError
     else:
       raise ValueError, "Unknown format: %s" % str(format)
@@ -314,7 +314,9 @@ class NoSQLTesterManager(object):
             f.write(data)
             f.close()
             
-            if 'partial' in request.form and request.form['partial'] == False:
+            if 'partial' in request.form and request.form['partial'] == unicode(True):
+              pass
+            else:
               self.todo -= 1
             
             if self.todo == 0:
@@ -356,6 +358,15 @@ class NoSQLTesterManager(object):
     
     pass
 
+def sheduler_thread(scheduler, read):
+  s = ""
+  while s != "END":
+    time.sleep(1)
+    scheduler.do_scheduling(action='START')
+    s = os.read(read, 255)
+    time.sleep(1)
+  os.close(read)
+
 
 def go(params):
   """
@@ -369,19 +380,12 @@ def go(params):
   scheduler.default_init()
 
   r, w = os.pipe()
-  pid = os.fork()
-  if pid == 0:
-    s = ""
-    while s != "END":
-      time.sleep(1)
-      scheduler.do_scheduling(action='START')
-      s = os.read(r, 255)
-      time.sleep(1)
-    os.close(r)
-    os._exit(os.EX_OK)
-  else:
-    scheduler.setWritePipe(w)
-    scheduler.waitForReports(host=params['address'], port=params['port'])
+  scheduler.setWritePipe(w)
+  
+  t = Thread(target=scheduler_thread, args=(scheduler, r,))
+  t.start()
+  
+  scheduler.waitForReports(host=params['address'], port=params['port'])
 
 def usage():
   """



More information about the Erp5-report mailing list