Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jean-Paul Smets
slapos
Commits
8be711fd
Commit
8be711fd
authored
Jan 24, 2012
by
Łukasz Nowak
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/erp5scalabilitytestbed'
parents
b24fc0f4
e654f7fc
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
196 additions
and
0 deletions
+196
-0
setup.py
setup.py
+1
-0
slapos/recipe/erp5scalabilitytestbed/__init__.py
slapos/recipe/erp5scalabilitytestbed/__init__.py
+106
-0
slapos/recipe/erp5scalabilitytestbed/template/erp5tester_manager_run.in
...erp5scalabilitytestbed/template/erp5tester_manager_run.in
+9
-0
slapos/recipe/erp5scalabilitytestbed/template/nosqltester_run.in
...recipe/erp5scalabilitytestbed/template/nosqltester_run.in
+7
-0
software/erp5scalabilitytestbed/instance.cfg
software/erp5scalabilitytestbed/instance.cfg
+13
-0
software/erp5scalabilitytestbed/software.cfg
software/erp5scalabilitytestbed/software.cfg
+60
-0
No files found.
setup.py
View file @
8be711fd
...
...
@@ -46,6 +46,7 @@ setup(name=name,
'davstorage = slapos.recipe.davstorage:Recipe'
,
'duplicity = slapos.recipe.duplicity:Recipe'
,
'erp5 = slapos.recipe.erp5:Recipe'
,
'erp5scalabilitytestbed = slapos.recipe.erp5scalabilitytestbed:Recipe'
,
'erp5testnode = slapos.recipe.erp5testnode:Recipe'
,
'helloworld = slapos.recipe.helloworld:Recipe'
,
'java = slapos.recipe.java:Recipe'
,
...
...
slapos/recipe/erp5scalabilitytestbed/__init__.py
0 → 100644
View file @
8be711fd
##############################################################################
#
# 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.
#
##############################################################################
import
os
import
pkg_resources
from
slapos.recipe.librecipe
import
BaseSlapRecipe
class
Recipe
(
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
(
'user_range_increment'
,
1
)
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'
if
','
in
config
[
'nb_users'
]:
config
[
'nb_tester_init'
]
=
config
[
'nb_users'
].
split
(
','
)[
0
]
config
[
'nb_tester_max'
]
=
config
[
'nb_users'
].
split
(
','
)[
1
]
else
:
config
[
'nb_tester_init'
]
=
config
[
'nb_users'
]
config
[
'nb_tester_max'
]
=
config
[
'nb_users'
]
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'
]
connection
[
'erp5_publish_url'
]
=
config
.
get
(
'erp5_publish_url'
,
''
)
connection
[
'erp5_publish_project'
]
=
config
.
get
(
'erp5_publish_project'
,
''
)
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_config
[
'filename_prefix'
]
=
'%s-%s'
%
(
self
.
computer_id
,
self
.
computer_partition_id
)
tester_connection
=
{
'url'
:
'http://[%s]:5000/'
%
\
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
]
slapos/recipe/erp5scalabilitytestbed/template/erp5tester_manager_run.in
0 → 100755
View file @
8be711fd
#!/bin/sh
# BEWARE: This file is operated by slapgrid
# BEWARE: It will be overwritten automatically
exec
%
(
scalability_tester_manager_binary
)
s %
(
plugin_name
)
s
-a
%
(
address
)
s
\
-r
%
(
report_path
)
s
-m
%
(
nb_tester_init
)
s
-t
%
(
nb_tester_max
)
s
\
-i
%
(
user_range_increment
)
s
--erp5-publish-url
"%(erp5_publish_url)s"
\
--erp5-publish-project
"%(erp5_publish_project)s"
%
(
software_release_url
)
s
\
%
(
server_url
)
s
"%(key_file)s"
"%(cert_file)s"
%
(
computer_id
)
s
\
%
(
computer_partition_id
)
s
slapos/recipe/erp5scalabilitytestbed/template/nosqltester_run.in
0 → 100755
View file @
8be711fd
#!/bin/sh
# BEWARE: This file is operated by slapgrid
# BEWARE: It will be overwritten automatically
cd
%
(
benchmark_suite_path
)
s
&&
\
exec
%
(
scalability_tester_binary
)
s
-m
%
(
host_address
)
s
-a
%
(
tester_address
)
s
\
-r
%
(
report_path
)
s
-l
%
(
report_path
)
s
--filename-prefix
%
(
filename_prefix
)
s
\
--repeat
%
(
repeat
)
s %
(
erp5_url
)
s 1 %
(
benchmark_suites
)
s
software/erp5scalabilitytestbed/instance.cfg
0 → 100644
View file @
8be711fd
[buildout]
parts =
erp5-scalability-testbed-instance
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
[erp5-scalability-testbed-instance]
<= slap_connection
recipe = slapos.cookbook:erp5scalabilitytestbed
scalability_tester_binary = ${buildout:bin-directory}/scalability_tester_erp5
scalability_tester_manager_binary = ${buildout:bin-directory}/nosqltester_manager
benchmark_suite_path = ${scalability-test-suite:location}
software/erp5scalabilitytestbed/software.cfg
0 → 100644
View file @
8be711fd
[buildout]
recipe_location = ${:parts-directory}/slapos.cookbook
develop = ${:recipe_location}
extends =
http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/erp5scalabilitytestbed:/component/lxml-python/buildout.cfg
find-links =
http://www.nexedi.org/static/packages/source/slapos.buildout/
http://www.nexedi.org/static/packages/source/
parts =
template
eggs
checkrecipe
scalability-test-suite
versions = versions
[checkrecipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
[slapos.cookbook]
recipe = plone.recipe.command
stop-on-error = true
location = ${buildout:parts-directory}/${:_buildout_section_name_}
command = git clone -b erp5scalabilitytestbed --quiet http://git.erp5.org/repos/slapos.git ${:location}
update-command = cd ${:location} && git pull --quiet
[eggs]
dummy = ${slapos.cookbook:location}
recipe = zc.recipe.egg
eggs =
collective.recipe.template
slapos.core
slapos.cookbook
slapos.tool.nosqltester
slapos.tool.nosqltester_manager
slapos.tool.nosqltester_manager.plugin.erp5
erp5.utils.benchmark
[scalability-test-suite]
recipe = plone.recipe.command
location = ${buildout:parts-directory}/${:_buildout_section_name_}
command = tar -C ${buildout:parts-directory} -zxf /var/tmp/erp5_scalability_test_suite.tar.gz
update-command = ${:command}
[template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg
md5sum = 843d97aa6439610ec2d53475e2606581
output = ${buildout:directory}/template.cfg
mode = 0644
[versions]
# Use SlapOS patched zc.buildout
zc.buildout = 1.5.3-dev-SlapOS-001
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment