[Erp5-report] r45860 guillaume.bottex - in /slapos/trunk: recipe/slapos.recipe.sheepdogtest...

nobody at svn.erp5.org nobody at svn.erp5.org
Mon May 16 18:56:19 CEST 2011


Author: guillaume.bottex
Date: Mon May 16 18:56:19 2011
New Revision: 45860

URL: http://svn.erp5.org?rev=45860&view=rev
Log:
Adding recipe and tool for sheepdog testbed.

Added:
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/CHANGES.txt   (with props)
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/MANIFEST.in
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/README.txt   (with props)
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.cfg
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.py
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/__init__.py
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/__init__.py
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/__init__.py
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_manager_run.in
    slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_run.in
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/CHANGES.txt   (with props)
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/MANIFEST.in
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/README.txt   (with props)
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.cfg
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.py
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/__init__.py
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/__init__.py
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/__init__.py
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/
    slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py   (with props)

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/CHANGES.txt
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/CHANGES.txt?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/CHANGES.txt (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/CHANGES.txt [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,8 @@
+Changelog
+=========
+
+0.0.1dev (2011/05/16)
+---------------------
+
+ - Initial version
+   [Guillaume Bottex]

Propchange: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/CHANGES.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/MANIFEST.in
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/MANIFEST.in?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/MANIFEST.in (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/MANIFEST.in [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,2 @@
+include CHANGES.txt
+recursive-include src/slapos/recipe/sheepdogtestbed *.in

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/README.txt
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/README.txt?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/README.txt (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/README.txt [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,2 @@
+slapos.recipe.sheepdogtestbed
+=============================

Propchange: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/README.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.cfg
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.cfg?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.cfg (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.cfg [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,3 @@
+[egg_info]
+tag_build = .dev
+tag_svn_revision = 1

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.py
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.py (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/setup.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,36 @@
+from setuptools import setup, find_packages
+import os
+
+name = "slapos.recipe.sheepdogtestbed"
+version = '0.0.1'
+
+def read(*rnames):
+  return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+long_description=( read('README.txt')
+                   + '\n' +
+                   read('CHANGES.txt')
+                 )
+
+setup(
+    name = name,
+    version = version,
+    description = "ZC Buildout recipe for the sheepdog test bed",
+    long_description=long_description,
+    license = "GPLv3",
+    keywords = "buildout sheepdogtestbed",
+    classifiers=[
+        "Framework :: Buildout :: Recipe",
+        "Programming Language :: Python",
+    ],
+    packages = find_packages('src'),
+    package_dir = {'': 'src'},
+    include_package_data=True,
+    install_requires = [
+      'zc.recipe.egg',
+      'setuptools',
+      'slapos.lib.recipe',
+      ],
+    namespace_packages = ['slapos', 'slapos.recipe'],
+    entry_points = {'zc.buildout': ['default = %s:SheepDogTestBed' % name]},
+    )

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/__init__.py
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/__init__.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/__init__.py (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/__init__.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__) 

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/__init__.py
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/__init__.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/__init__.py (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/__init__.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__) 

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/__init__.py
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/__init__.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/__init__.py (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/__init__.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,118 @@
+##############################################################################
+#
+# Copyright (c) 2010 Vifib SARL and Contributors. All Rights Reserved.
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsibility of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# guarantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+import os
+import urllib
+import urllib2
+import pkg_resources
+from slapos.lib.recipe.BaseSlapRecipe import BaseSlapRecipe
+
+class SheepDogTestBed(BaseSlapRecipe):
+
+  def _install(self):
+    self.parameter_dict = self.computer_partition.getInstanceParameterDict()
+    software_type = self.parameter_dict.get('slap_software_type', 'default')
+    if software_type is None or software_type == 'RootSoftwareInstance':
+      software_type = 'default'
+    if "run_%s" % software_type in dir(self) and \
+       callable(getattr(self, "run_%s" % software_type)):
+      return getattr(self, "run_%s" % software_type)()
+    else:
+      raise NotImplementedError("Do not support %s" % software_type)
+
+  def run_default(self):
+    return self.run_sheepdog_test()
+
+  def run_sheepdog_test(self):
+    """ Launch sheepdog test process. """
+    
+    sheepdog_test_config = {}
+    sheepdog_test_config.update(self.options)
+    sheepdog_test_config.update(self.parameter_dict)
+
+    sheepdog_test_config['address'] = self.getGlobalIPv6Address()
+    sheepdog_test_config['report_path'] = self.log_directory
+    
+    # if 'nb_server_max' not in sheepdog_test_config:
+    #   sheepdog_test_config['nb_server_max'] = 3
+    
+    # if 'nb_tester_max' not in sheepdog_test_config:
+    #   sheepdog_test_config['nb_tester_max'] = 3
+    
+    if 'nb_thread' not in sheepdog_test_config:
+      sheepdog_test_config['nb_thread'] = 1
+    
+    if 'nb_request' not in sheepdog_test_config:
+      sheepdog_test_config['nb_request'] = 1000
+
+
+    sheepdog_test_config['software_release_url'] = self.software_release_url
+    sheepdog_test_config['server_url'] = self.server_url
+    sheepdog_test_config['key_file'] = self.key_file
+    sheepdog_test_config['cert_file'] = self.cert_file
+    sheepdog_test_config['computer_id'] = self.computer_id
+    sheepdog_test_config['computer_partition_id'] = self.computer_partition_id
+    sheepdog_test_config['plugin_name'] = 'sheepdog'
+
+    sheepdog_test_connection = {}
+    sheepdog_test_connection['url'] = "http://["+sheepdog_test_config['address']+"]:5000/"
+    self.computer_partition.setConnectionDict(sheepdog_test_connection)
+    
+    nosqltester_manager_wrapper_template_location = pkg_resources.resource_filename(
+                                             __name__, os.path.join(
+                                             'template', 'nosqltester_manager_run.in'))
+    nosqltester_manager_runner_path = self.createRunningWrapper("sheepdog_test_manager",
+          self.substituteTemplate(nosqltester_manager_wrapper_template_location, sheepdog_test_config))
+
+    return [nosqltester_manager_runner_path]
+
+  def run_sheepdog_tester(self):
+    """ Runs the sheepdog tester. """
+    tester_config = {}
+    tester_config.update(self.options)
+    tester_config.update(self.parameter_dict)
+
+    tester_config['tester_address'] = self.getGlobalIPv6Address()
+    tester_config['report_path'] = self.log_directory
+    tester_config['binary'] = tester_config['sheepstrike_binary'] + " -l " + \
+                              tester_config['gateway_address'].strip("[]") + " -p " + \
+                              tester_config['gateway_port'] + " -t " + \
+                              tester_config['nb_thread'] + " " + \
+                              tester_config['nb_request'] #" 1000" " -t 32 1024000"
+
+    tester_connection = {}
+    tester_connection['start_url'] = "http://%s:5000/start" % tester_config['tester_address']
+    self.computer_partition.setConnectionDict(tester_connection)
+
+    tester_wrapper_template_location = pkg_resources.resource_filename(
+                                             __name__, os.path.join(
+                                             'template', 'nosqltester_run.in'))
+    tester_runner_path = self.createRunningWrapper("nosqltester",
+          self.substituteTemplate(tester_wrapper_template_location, tester_config))
+
+    return [tester_runner_path]
+

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_manager_run.in
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_manager_run.in?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_manager_run.in (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_manager_run.in [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,4 @@
+#!/bin/sh
+# BEWARE: This file is operated by slapgrid
+# BEWARE: It will be overwritten automatically
+exec %(nosqltester_manager_binary)s -a %(address)s -r %(report_path)s -s %(nb_server_max)s -t %(nb_tester_max)s %(software_release_url)s %(server_url)s "%(key_file)s" "%(cert_file)s" %(computer_id)s %(computer_partition_id)s %(plugin_name)s

Added: slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_run.in
URL: http://svn.erp5.org/slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_run.in?rev=45860&view=auto
==============================================================================
--- slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_run.in (added)
+++ slapos/trunk/recipe/slapos.recipe.sheepdogtestbed/src/slapos/recipe/sheepdogtestbed/template/nosqltester_run.in [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,4 @@
+#!/bin/sh
+# BEWARE: This file is operated by slapgrid
+# BEWARE: It will be overwritten automatically
+exec %(nosqltester_binary)s -h %(host_address)s -a %(tester_address)s -r %(report_path)s -b "%(binary)s"

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/CHANGES.txt
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/CHANGES.txt?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/CHANGES.txt (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/CHANGES.txt [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,8 @@
+Changelog
+=========
+
+0.0.1dev (2011/05/16)
+---------------------
+
+ - Initial version
+   [Guillaume Bottex]

Propchange: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/CHANGES.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/MANIFEST.in
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/MANIFEST.in?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/MANIFEST.in (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/MANIFEST.in [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1 @@
+include CHANGES.txt
\ No newline at end of file

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/README.txt
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/README.txt?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/README.txt (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/README.txt [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,2 @@
+slapos.tool.nosqltester_manager.sheepdog
+========================================

Propchange: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/README.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.cfg
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.cfg?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.cfg (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.cfg [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,3 @@
+[egg_info]
+tag_build = .dev
+tag_svn_revision = 1

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.py (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/setup.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,36 @@
+from setuptools import setup, find_packages
+import os
+
+name = "slapos.tool.nosqltester_manager.sheepdog"
+version = '0.0.1'
+
+def read(*rnames):
+  return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+long_description=( read('README.txt')
+                   + '\n' +
+                   read('CHANGES.txt')
+                 )
+
+setup(
+    name = name,
+    version = version,
+    author = 'Guillaume Bottex, for Nexedi',
+    author_email = 'gbottex at tiolive.com',
+    description = "Manager for sheepdog tester",
+    license = "GPL",
+    keywords = "sheepdog test manager scheduler",
+    classifiers=[
+        "Framework :: Buildout",
+        "Programming Language :: Python",
+      ],
+    packages = find_packages('src'),
+    include_package_data = True,
+    package_dir = {'':'src'},
+    install_requires = ['Flask', 'slapos.tool.nosqltester_manager'],
+    namespace_packages = ['slapos', 'slapos.tool', 'slapos.tool.nosqltester_manager'],
+    entry_points = """
+    [slapos.tool.nosqltester_manager.plugin]
+    sheepdog=%s:SheepdogTesterManager
+    """  % name,
+    )

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/__init__.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/__init__.py (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/__init__.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__) 

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/__init__.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/__init__.py (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/__init__.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__) 

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/__init__.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/__init__.py (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/__init__.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__) 

Added: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py
URL: http://svn.erp5.org/slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py?rev=45860&view=auto
==============================================================================
--- slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py (added)
+++ slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py [utf8] Mon May 16 18:56:19 2011
@@ -0,0 +1,92 @@
+#!/usr/bin/python
+
+##############################################################################
+#
+# Copyright (c) 2010 Vifib SARL and Contributors. All Rights Reserved.
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsibility of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# guarantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+import sys, logging, csv, re
+from slapos.tool.nosqltester_manager import NoSQLTesterManager
+
+class SheepdogTesterManager(NoSQLTesterManager):
+
+  def __init__(self, params):
+    NoSQLTesterManager.__init__(self, params)
+    self.host_address = params['address']
+    
+    argv = sys.argv[16:]
+    
+    if argv.__len__() < 1:
+      self.nb_thread = 1
+    else:
+      self.nb_thread = argv[0]
+      
+    if argv.__len__() < 2:
+      self.nb_request = 1000
+    else:
+      self.nb_request = argv[1]
+
+  def _sheepdog_init(self):
+    try:
+      tester_computer_partition = []
+      for i in range(0, self.max_tester):
+        self.logger.debug("Sheepdog tester "+str(i))
+        tester_computer_partition.append(self.computer_partition.request(self.software_release_url, 'sheepdog_tester', 'sheepdog_tester'+str(i),
+                   partition_parameter_kw={'gateway_address':gateway_computer_partition.getConnectionParameter('address'),
+                                           'gateway_port':gateway_computer_partition.getConnectionParameter('port'),
+                                           'host_address':self.host_address,
+                                           'nb_thread':self.nb_thread,
+                                           'nb_request':self.nb_request}))
+      for partition in tester_computer_partition:
+        self.logger.debug("Appending Sheepdog testers' start url")
+        self.tester_urls.append(partition.getConnectionParameter('start_url'))
+      self.logger.debug("Before remove duplicates: %s" % str(self.tester_urls))
+      self.tester_urls = list(set(self.tester_urls)) # remove duplicates
+      self.logger.debug("After remove duplicates: %s" % str(self.tester_urls))
+      self.todo = self.tester_urls.__len__()
+      self.manager_computer_partition = manager_computer_partition
+      return True
+    except:
+      self.logger.debug(str(sys.exc_info()))
+      return False
+
+  def _add_sheepdog_server_node(self):
+      return True
+
+  def writeCSV(self, inputnames, outputname):
+    output = csv.writer(open(outputname, 'wb'), delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL)
+    # Header
+    output.writerow(['set sec', 'set MB', 'set Mbps', 'set req/sec', 'set usec/req',
+                     'get sec', 'get MB', 'get Mbps', 'get req/sec', 'get usec/req'])
+    for inputname in inputnames:
+      l = []
+      f = open(inputname, "r")
+      lines = f.readlines()
+      f.close()
+      for i in range(8, lines.__len__()):
+        if i != 13 and i != 14:
+          l.append(re.findall(r'\d+\.\d+|\d+',lines[i])[0].replace('.', ','))
+      output.writerow(l)
+

Propchange: slapos/trunk/util/slapos.tool.nosqltester_manager.sheepdog/src/slapos/tool/nosqltester_manager/sheepdog/__init__.py
------------------------------------------------------------------------------
    svn:executable = *



More information about the Erp5-report mailing list