[Erp5-report] r45893 guillaume.bottex - /slapos/trunk/util/slapos.tool.nosqltester/src/slap...
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Jun 15 09:53:26 CEST 2011
Author: guillaume.bottex
Date: Wed Jun 15 09:53:26 2011
New Revision: 45893
URL: http://svn.erp5.org?rev=45893&view=rev
Log:
Add comments.
Modified:
slapos/trunk/util/slapos.tool.nosqltester/src/slapos/tool/nosqltester/__init__.py
Modified: slapos/trunk/util/slapos.tool.nosqltester/src/slapos/tool/nosqltester/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester/src/slapos/tool/nosqltester/__init__.py?rev=45893&r1=45892&r2=45893&view=diff
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester/src/slapos/tool/nosqltester/__init__.py [utf8] (original)
+++ slapos/trunk/util/slapos.tool.nosqltester/src/slapos/tool/nosqltester/__init__.py [utf8] Wed Jun 15 09:53:26 2011
@@ -36,7 +36,29 @@ import urllib, urllib2
import logging, logging.handlers
class NoSQLTester(object):
+ """
+ NoSQLTester class.
+ """
+
def __init__(self, params):
+ """
+ :func:`__init__` method of the NoSQLTester.
+
+ :param params: The name to use.
+ :type params: dict.
+
+ .. note::
+
+ The params dictionnary should contains the following values:
+ address, port, host_address, host_port, report_path, binary,
+ report_filename, debug, compress_method, log_directory, plugin_name
+
+ .. note::
+
+ You may need to override this method in an inheritance class.
+
+ """
+
self.params = params
self.childpid = -1
self.lock = Lock()
@@ -50,10 +72,22 @@ class NoSQLTester(object):
self.logger.addHandler(file_handler)
def run(self):
+ """
+ Defines and starts the HTTP server.
+ """
+
app = Flask(__name__)
@app.route('/result/<report>')
def download(report):
+ """
+ Sends the requested :param report: file.
+
+ :params report: Name of the file to send.
+ :type report: unicode.
+
+ """
+
try:
try:
size = request.args['size']
@@ -83,6 +117,10 @@ class NoSQLTester(object):
@app.route('/action', methods=['POST'])
def action():
+ """
+ Starts or stops the testing process.
+ """
+
if request.method == 'POST' and 'action' in request.form:
if request.form['action'] == 'START':
pid = os.fork()
@@ -108,6 +146,16 @@ class NoSQLTester(object):
app.run(host=self.params['address'], port=self.params['port'], threaded=True)
def send_result_availability_notification(self, filename, size=-1):
+ """
+ Sends result availabilty notification to the manager.
+
+ :param filename: name of the result file.
+ :type params: str.
+ :param partial: is it a partial result ?
+ :type params: bool.
+
+ """
+
values = {}
values['filename'] = filename
values['url'] = "http://%s:%d/result/%s?size=%d" % (self.params['address'],
@@ -129,6 +177,14 @@ class NoSQLTester(object):
self.logger.debug(Formatter().formatException(sys.exc_info()))
def run_tester(self):
+ """
+ Runs the testing process.
+
+ .. note::
+ You may need to override this method in an inheritance class.
+
+ """
+
command = "%s > %s" % (self.params['binary'],
os.path.join(self.params['report_path'],
self.params['report_filename']))
@@ -143,9 +199,20 @@ class NoSQLTester(object):
return result
def usage():
+ """
+ Print usage.
+ """
+
pass
def main(argv=None):
+ """
+ Main function. It's the entry point for this program.
+
+ :params argv: command line arguments.
+ :type argv: list.
+
+ """
params = {
# Address and port of the tester
More information about the Erp5-report
mailing list