diff --git a/component/ethtool/buildout.cfg b/component/ethtool/buildout.cfg new file mode 100644 index 0000000000000000000000000000000000000000..a0d8cd7f0d1ca7478e5b9c634c61ad4f6467329d --- /dev/null +++ b/component/ethtool/buildout.cfg @@ -0,0 +1,9 @@ +# ethtool - query or control network driver and hardware settings +# https://www.kernel.org/pub/software/network/ethtool +[buildout] +parts = ethtool + +[ethtool] +recipe = slapos.recipe.cmmi +url = https://www.kernel.org/pub/software/network/ethtool/ethtool-4.11.tar.xz +md5sum = 16d38f4ebe23e44f96f7d8b38ed3652c diff --git a/component/ioping/buildout.cfg b/component/ioping/buildout.cfg new file mode 100644 index 0000000000000000000000000000000000000000..5a2d15119c8f13f093ce46170182f74450b7ce55 --- /dev/null +++ b/component/ioping/buildout.cfg @@ -0,0 +1,25 @@ +# ioping - simple disk I/O latency measuring tool +# https://github.com/koct9i/ioping +[buildout] +extends = + ../git/buildout.cfg + +parts = + ioping + +[ioping-repository] +recipe = slapos.recipe.build:gitclone +git-executable = ${git:location}/bin/git +# NOTE we use a bit patched ioping version which shows not only avg latency but also its distribution +# repository = https://github.com/koct9i/ioping.git +repository = https://lab.nexedi.com/kirr/ioping.git +revision = v1.0-9-g34c97f7636 + +[ioping] +recipe = slapos.recipe.cmmi +path = ${ioping-repository:location} +configure-command = : +make-binary = +# XXX without vvv PREFIX=${:location} does not work +location= ${buildout:parts-directory}/${:_buildout_section_name_} +make-targets= make install PREFIX=${:location} diff --git a/component/lmbench/buildout.cfg b/component/lmbench/buildout.cfg new file mode 100644 index 0000000000000000000000000000000000000000..105fe287a7ebdabe8cb178396d59ce3fae6bbf0a --- /dev/null +++ b/component/lmbench/buildout.cfg @@ -0,0 +1,28 @@ +# LMbench - Tools for Performance Analysis +# http://www.bitmover.com/lmbench/ +[buildout] +extends = + ../git/buildout.cfg + ../golang/buildout.cfg + +parts = + lmbench + + +[lmbench-repository] +<= git-repository +# NOTE we use a bit patched lmbench version with fixes to lat_tcp for errors not to go unnoticed and other addons +# repository = https://svn.code.sf.net/p/lmbench/code +repository = https://lab.nexedi.com/kirr/lmbench.git +revision = 9b108b6ff3 + +[lmbench] +recipe = slapos.recipe.cmmi +path = ${lmbench-repository:location} +configure-command = : +make-binary = +# XXX without vvv BASE=${:location} does not work +location= ${buildout:parts-directory}/${:_buildout_section_name_} +make-targets= cd ${lmbench-repository:location}/lmbench3/src + && make install BASE=${:location} + && bash -c ". ${gowork:env.sh} && go build -o ${:location}/bin/lat_tcp_go lat_tcp.go" diff --git a/software/neoppod/software-common.cfg b/software/neoppod/software-common.cfg index 669df87dbe0cd760291c18b3d06d6a13464adc54..1cedf1b4d89162998916b155762aaa6465ad175a 100644 --- a/software/neoppod/software-common.cfg +++ b/software/neoppod/software-common.cfg @@ -121,7 +121,7 @@ slapos.toolbox = 0.73 smmap2 = 2.0.1 transaction = 1.7.0 zodbpickle = 0.6.0 -zodbtools = 0.0.0.dev3 +zodbtools = 0.0.0.dev4 # Required by: # slapos.toolbox==0.71 @@ -153,3 +153,20 @@ paramiko = 2.1.2 # Required by: # slapos.toolbox==0.71 passlib = 1.7.1 + +# Required by: +# zodbtools==0.0.0dev4 +zodburi = 2.3.0 + +# Required by: +# zodburi==2.0 +# ZEO 5 requires transaction >= 2 +ZEO = 4.3.1 + +# Required by: +# zodburi==2.0 +mock = 2.0.0 + +# Required by: +# ZEO==4.3.1 +zdaemon = 4.2.0 diff --git a/software/neotest/gowork.cfg b/software/neotest/gowork.cfg new file mode 100644 index 0000000000000000000000000000000000000000..35cb19c741a402c78e53f9155cb319f36051a3a9 --- /dev/null +++ b/software/neotest/gowork.cfg @@ -0,0 +1,97 @@ +# Code generated by gowork-snapshot; DO NOT EDIT. + +# list of go git repositories to fetch +[gowork.goinstall] +depends_gitfetch = + ${go_github.com_cznic_strutil:recipe} + ${go_github.com_golang_glog:recipe} + ${go_github.com_kisielk_og-rek:recipe} + ${go_github.com_kylelemons_godebug:recipe} + ${go_github.com_pkg_errors:recipe} + ${go_github.com_pkg_profile:recipe} + ${go_github.com_someonegg_gocontainer:recipe} + ${go_golang.org_x_net:recipe} + ${go_golang.org_x_perf:recipe} + ${go_golang.org_x_sync:recipe} + ${go_golang.org_x_tools:recipe} + ${go_lab.nexedi.com_kirr_go123:recipe} + ${go_lab.nexedi.com_kirr_neo:recipe} + + +[go_github.com_cznic_strutil] +<= go-git-package +go.importpath = github.com/cznic/strutil +repository = https://github.com/cznic/strutil +revision = 529a34b1c1 + +[go_github.com_golang_glog] +<= go-git-package +go.importpath = github.com/golang/glog +repository = https://github.com/golang/glog +revision = 23def4e6c1 + +[go_github.com_kisielk_og-rek] +<= go-git-package +go.importpath = github.com/kisielk/og-rek +repository = https://github.com/kisielk/og-rek +revision = dd41cde712 + +[go_github.com_kylelemons_godebug] +<= go-git-package +go.importpath = github.com/kylelemons/godebug +repository = https://github.com/kylelemons/godebug +revision = d65d576e93 + +[go_github.com_pkg_errors] +<= go-git-package +go.importpath = github.com/pkg/errors +repository = https://github.com/pkg/errors +revision = v0.8.0-6-g2b3a18b5f0 + +[go_github.com_pkg_profile] +<= go-git-package +go.importpath = github.com/pkg/profile +repository = https://github.com/pkg/profile +revision = v1.2.1-0-g5b67d42886 + +[go_github.com_someonegg_gocontainer] +<= go-git-package +go.importpath = github.com/someonegg/gocontainer +repository = https://github.com/someonegg/gocontainer +revision = fc2c7e84b5 + +[go_golang.org_x_net] +<= go-git-package +go.importpath = golang.org/x/net +repository = https://go.googlesource.com/net +revision = 1087133bc4 + +[go_golang.org_x_perf] +<= go-git-package +go.importpath = golang.org/x/perf +repository = https://go.googlesource.com/perf +revision = 4469e6ce8c + +[go_golang.org_x_sync] +<= go-git-package +go.importpath = golang.org/x/sync +repository = https://go.googlesource.com/sync +revision = 8e0aa688b6 + +[go_golang.org_x_tools] +<= go-git-package +go.importpath = golang.org/x/tools +repository = https://go.googlesource.com/tools +revision = 9bd2f44268 + +[go_lab.nexedi.com_kirr_go123] +<= go-git-package +go.importpath = lab.nexedi.com/kirr/go123 +repository = https://lab.nexedi.com/kirr/go123.git +revision = 2578d58311 + +[go_lab.nexedi.com_kirr_neo] +<= go-git-package +go.importpath = lab.nexedi.com/kirr/neo +repository = https://lab.nexedi.com/kirr/neo.git +revision = v1.8-1326-g4d0cd89484 diff --git a/software/neotest/instance.cfg.in b/software/neotest/instance.cfg.in new file mode 100644 index 0000000000000000000000000000000000000000..3710ae587cb58510f06bd37360fa388d8442de49 --- /dev/null +++ b/software/neotest/instance.cfg.in @@ -0,0 +1 @@ +# TODO instance which runs this test periodically automatically and ingests results to ERP5 diff --git a/software/neotest/neotest-env.sh.in b/software/neotest/neotest-env.sh.in new file mode 100644 index 0000000000000000000000000000000000000000..c85a49740bbcd0fc6a28732162d0abcaeebb5404 --- /dev/null +++ b/software/neotest/neotest-env.sh.in @@ -0,0 +1,30 @@ +# env.sh for putting everything needed to run neotest on path + +. ${gowork:env.sh} + +PATH="${ethtool:location}/sbin:$PATH" +PATH="${ioping:location}/bin:$PATH" +PATH="${lmbench:location}/bin:$PATH" +PATH="${mariadb:location}/bin:$PATH" +PATH="${mariadb:location}/scripts:$PATH" +PATH="${python2.7:location}/bin:$PATH" + +# add all eggs and develop-eggs to py path +# +# XXX better leverage something like zc.recipe.egg to generate eggs path buildout way +# XXX see e.g. https://lab.nexedi.com/nexedi/slapos/merge_requests/242#note_49644 for why +# TODO(kirr) try doing so +PYTHONPATH=${buildout:develop-eggs-directory}:$PYTHONPATH # for .egg-link to be found by setuptools +for egglink in ${buildout:develop-eggs-directory}/*.egg-link; do + PYTHONPATH=`cat $egglink |head -1`:$PYTHONPATH +done + +for egg in ${buildout:develop-eggs-directory}/*.egg ${buildout:eggs-directory}/*.egg; do + export PYTHONPATH=$egg:$PYTHONPATH +done + + +export PATH +export PYTHONPATH + +export PS1="(neotest-`basename ${buildout:directory}`) $PS1" diff --git a/software/neotest/neotest.in b/software/neotest/neotest.in new file mode 100644 index 0000000000000000000000000000000000000000..0a808ff1ab56bff380b4ac0e29628bc5c449eb13 --- /dev/null +++ b/software/neotest/neotest.in @@ -0,0 +1,5 @@ +#!/bin/bash -e +# neotest wraper so it could be run without any environment preset + +. ${buildout:directory}/neotest-env.sh +exec ${gowork:src}/lab.nexedi.com/kirr/neo/go/neo/t/neotest "$@" diff --git a/software/neotest/software-dev.cfg b/software/neotest/software-dev.cfg new file mode 100644 index 0000000000000000000000000000000000000000..82438494edfb4787a630ca129a86975c7f42a20a --- /dev/null +++ b/software/neotest/software-dev.cfg @@ -0,0 +1,20 @@ +# neotest SR with main components taken from latest git versions +[buildout] +extends = software.cfg + + +[go_lab.nexedi.com_kirr_go123] +branch = master +revision= + +[go_lab.nexedi.com_kirr_neo] +branch = t +revision= + +[lmbench-repository] +branch = x/kirr +revision= + +[ioping-repository] +branch = x/hist +revision= diff --git a/software/neotest/software.cfg b/software/neotest/software.cfg new file mode 100644 index 0000000000000000000000000000000000000000..ab60ca8a4547b9765d485823307de5963887565b --- /dev/null +++ b/software/neotest/software.cfg @@ -0,0 +1,109 @@ +# NEO test software-release +# +# This software-release prepares environment so that neotest NEO +# testing/benchmarking can be run in a SlapOS WebRunner. +[buildout] +extends = + ../../stack/slapos.cfg + ../neoppod/software-common.cfg + ../../component/golang/buildout.cfg + gowork.cfg + ../../component/wendelin.core/buildout.cfg + ../../component/ethtool/buildout.cfg + ../../component/ioping/buildout.cfg + ../../component/lmbench/buildout.cfg + +parts = + gowork + lmbench + ioping + ethtool + + neoppod-develop + neoppod + wendelin.core-dev + eggs + + neotest-env.sh + neotest + +# for instance + slapos-deps-eggs + slapos-cookbook +# instance.cfg + + +# go packages to install (+ automatically their dependencies) +[gowork] +install = + lab.nexedi.com/kirr/neo/go/... \ + github.com/pkg/profile \ + golang.org/x/perf/cmd/benchstat + +# dev-install neo from go checkout +[neoppod-develop] +setup = ${go_lab.nexedi.com_kirr_neo:location} + + +# neotest-env.sh + neotest wrapper +[buildout-template] +recipe = slapos.recipe.template +url = ${:_profile_base_location_}/${:_buildout_section_name_}.in +output = ${buildout:directory}/${:_buildout_section_name_} + +[neotest-env.sh] +<= buildout-template +md5sum = 6e2203c7a86e8a3e8e56b8086115f5d4 + +[neotest] +<= buildout-template +output = ${buildout:bin-directory}/${:_buildout_section_name_} +mode = 0755 +md5sum = fb3b4109128c1db1739ef5bb6abd1d94 + + +# instance (TODO) +[instance.cfg] +<= buildout-template +md5sum = 410e1b2d72829824b28cc0299adb472e + + +# eggs: +[eggs] +recipe = zc.recipe.egg +eggs = +# wendelin.core still requires ZODB3 but having ZODB4 or 5 installed satisfies latest ZODB3 + ZODB3 +# also for wc + numpy +# to install not only wendelin.core modules but also scripts + wendelin.core +# for ZEO scripts (runzeo) + ZEO + + +# wendelin.core: latest not yet released +[wendelin.core-repository] +revision= v0.11-4-g38fbc83ceb + +# ping eggs versions +[versions] +pyasn1 = 0.3.7 +ZODB3 = 3.11.0 +numpy = 1.13.3 +zope.testing = 4.6.2 + +# Required by: +# ZEO==4.3.1 +# ZODB==4.4.5 +# zodburi==2.3.0 +ZConfig = 3.2.0 + +# Required by: +# ZEO==4.3.1 +# ZODB==4.4.5 +zc.lockfile = 1.2.1 + +# Required by: +# slapos.toolbox==0.73 +erp5.util = 0.4.49 diff --git a/stack/erp5/buildout.cfg b/stack/erp5/buildout.cfg index 6208aaadfc444c99ba7513189071a7a4e7a3adf8..45d41f8216595cac19094e2490bbc14c6bb90bc3 100644 --- a/stack/erp5/buildout.cfg +++ b/stack/erp5/buildout.cfg @@ -688,8 +688,6 @@ PyXML = 0.8.5 Pympler = 0.4.3 StructuredText = 2.11.1 WSGIUtils = 0.7 -# ZEO 5 requires transaction >= 2 -ZEO = 4.3.1 ZODB3 = 3.11.0 # astroid 1.4.1 breaks testDynamicClassGeneration astroid = 1.3.8