Commit f45a7cc1 authored by Arnaud Fontaine's avatar Arnaud Fontaine

Add erp5scalabilitytestbed recipe.

parent 901660db
##############################################################################
#
# Copyright (c) 2011 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.
#
##############################################################################
from slapos.recipe.librecipe import BaseSlapRecipe
class NoSQLTestBed(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 = 'erp5_scalability_cloud'
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_erp5_scalability_cloud(self):
config = {}
config.update(self.options)
config.update(self.parameter_dict)
config['address'] = self.getGlobalIPv6Address()
config['report_path'] = self.log_directory
config.setdefault('nb_server_max', 3)
config.setdefault('nb_tester_max', 3)
config['software_release_url'] = self.software_release_url
config['server_url'] = self.server_url
config['key_file'] = self.key_file
config['cert_file'] = self.cert_file
config['computer_id'] = self.computer_id
config['computer_partition_id'] = self.computer_partition_id
config['plugin_name'] = 'erp5'
connection = {}
connection['url'] = 'http://["+config['address']+"]:5000/'
connection['erp5_url'] = config['erp5_url']
connection['repeat'] = config['repeat']
connection['nb_users'] = config['nb_users']
connection['benchmark_suites'] = config['benchmark_suites']
self.computer_partition.setConnectionDict(connection)
nosqltester_manager_wrapper_template_location = pkg_resources.resource_filename(
__name__, os.path.join('template', 'erp5tester_manager_run.in'))
nosqltester_manager_runner_path = self.createRunningWrapper("erp5tester_manager",
self.substituteTemplate(nosqltester_manager_wrapper_template_location, config))
return [nosqltester_manager_runner_path]
def run_erp5_tester(self):
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_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]
#!/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 %(nb_thread)s %(nb_request)s
#!/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 \
--report-directory %(report_path)s --repeat %(repeat)d %(erp5_url)s %(nb_users)d \
%(benchmark_suites)s
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment