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
Roque
slapos
Commits
7291d0fc
Commit
7291d0fc
authored
Jan 10, 2018
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Plain Diff
Update Release Candidate
parents
7427629c
c53d0f43
Changes
86
Show whitespace changes
Inline
Side-by-side
Showing
86 changed files
with
729 additions
and
244 deletions
+729
-244
component/fontconfig/buildout.cfg
component/fontconfig/buildout.cfg
+4
-3
component/haproxy/buildout.cfg
component/haproxy/buildout.cfg
+2
-2
component/jemalloc/buildout.cfg
component/jemalloc/buildout.cfg
+2
-1
component/keras/buildout.cfg
component/keras/buildout.cfg
+2
-2
component/mariadb/buildout.cfg
component/mariadb/buildout.cfg
+12
-12
component/mariadb/mariarocks.cfg
component/mariadb/mariarocks.cfg
+2
-5
component/nginx/buildout.cfg
component/nginx/buildout.cfg
+1
-0
component/nginx/fix-gcc7-implicit-fallthrough-errors.patch
component/nginx/fix-gcc7-implicit-fallthrough-errors.patch
+63
-0
component/ocropy/buildout.cfg
component/ocropy/buildout.cfg
+2
-2
component/ocropy/ocropy.patch
component/ocropy/ocropy.patch
+39
-20
component/openssh/buildout.cfg
component/openssh/buildout.cfg
+10
-1
component/openssl/buildout.cfg
component/openssl/buildout.cfg
+2
-2
component/rdiff-backup/buildout.cfg
component/rdiff-backup/buildout.cfg
+7
-0
component/rdiff-backup/rdiff-backup-1.3.4-librsync-1.0.0.patch
...nent/rdiff-backup/rdiff-backup-1.3.4-librsync-1.0.0.patch
+20
-0
component/tensorboard/buildout.cfg
component/tensorboard/buildout.cfg
+3
-1
component/tensorflow/buildout.cfg
component/tensorflow/buildout.cfg
+2
-2
setup.py
setup.py
+2
-1
slapos/recipe/erp5_test/__init__.py
slapos/recipe/erp5_test/__init__.py
+1
-1
slapos/recipe/erp5_test/test.py
slapos/recipe/erp5_test/test.py
+5
-27
slapos/recipe/librecipe/execute.py
slapos/recipe/librecipe/execute.py
+22
-37
slapos/recipe/librecipe/inotify.py
slapos/recipe/librecipe/inotify.py
+7
-14
slapos/recipe/neoppod.py
slapos/recipe/neoppod.py
+2
-0
slapos/test/recipe/test_inotify.py
slapos/test/recipe/test_inotify.py
+72
-0
software/agent/software.cfg
software/agent/software.cfg
+1
-1
software/apache-frontend/software.cfg
software/apache-frontend/software.cfg
+1
-1
software/backupserver/instance-pullrdiffbackup.cfg.in
software/backupserver/instance-pullrdiffbackup.cfg.in
+17
-11
software/backupserver/software.cfg
software/backupserver/software.cfg
+11
-5
software/backupserver/status2rss.py
software/backupserver/status2rss.py
+1
-2
software/backupserver/template-backup-script.sh.in
software/backupserver/template-backup-script.sh.in
+1
-1
software/buildout-testing/runTestSuite.in
software/buildout-testing/runTestSuite.in
+1
-1
software/cdn-me/software.cfg
software/cdn-me/software.cfg
+1
-1
software/dream/software.cfg
software/dream/software.cfg
+1
-1
software/erp5/README.rst
software/erp5/README.rst
+2
-6
software/erp5/software.cfg.json
software/erp5/software.cfg.json
+0
-7
software/erp5testnode/software.cfg
software/erp5testnode/software.cfg
+2
-2
software/erp5testnode/testsuite/deploy-test/runTestSuite.py
software/erp5testnode/testsuite/deploy-test/runTestSuite.py
+2
-2
software/erp5testnode/testsuite/deploy-test/software.cfg
software/erp5testnode/testsuite/deploy-test/software.cfg
+1
-1
software/erp5testnode/testsuite/dummy/software.cfg
software/erp5testnode/testsuite/dummy/software.cfg
+2
-1
software/gitlab/software.cfg
software/gitlab/software.cfg
+1
-1
software/html5as/software.cfg
software/html5as/software.cfg
+1
-1
software/html5ide/software.cfg
software/html5ide/software.cfg
+1
-1
software/jstestnode/runTestSuite.in
software/jstestnode/runTestSuite.in
+2
-2
software/jstestnode/software.cfg
software/jstestnode/software.cfg
+4
-4
software/jupyter/software.cfg
software/jupyter/software.cfg
+1
-1
software/kvm/software.cfg
software/kvm/software.cfg
+1
-1
software/nayuos/software.cfg
software/nayuos/software.cfg
+1
-1
software/neoppod/instance-neo-input-schema.json
software/neoppod/instance-neo-input-schema.json
+5
-0
software/neoppod/instance-neo-storage-mysql.cfg.in
software/neoppod/instance-neo-storage-mysql.cfg.in
+1
-0
software/neoppod/software-common.cfg
software/neoppod/software-common.cfg
+2
-2
software/nginx-push-stream/software.cfg
software/nginx-push-stream/software.cfg
+1
-1
software/powerdns/software.cfg
software/powerdns/software.cfg
+1
-1
software/re6stnet/software.cfg
software/re6stnet/software.cfg
+1
-1
software/seleniumrunner/software.cfg
software/seleniumrunner/software.cfg
+1
-1
software/slapos-in-partition/software.cfg
software/slapos-in-partition/software.cfg
+1
-1
software/slapos-master/buildout.hash.cfg
software/slapos-master/buildout.hash.cfg
+1
-1
software/slapos-master/instance-erp5.cfg.in
software/slapos-master/instance-erp5.cfg.in
+1
-1
software/slapos-testing/software.cfg
software/slapos-testing/software.cfg
+1
-1
software/slaprunner/common.cfg
software/slaprunner/common.cfg
+1
-0
software/slaprunner/software.cfg
software/slaprunner/software.cfg
+1
-1
software/test-slave-instance-deployment/software.cfg
software/test-slave-instance-deployment/software.cfg
+1
-1
software/unstable/condor/software.cfg
software/unstable/condor/software.cfg
+0
-1
software/unstable/zimbra-kvm/software.cfg
software/unstable/zimbra-kvm/software.cfg
+0
-1
software/varnish/software.cfg
software/varnish/software.cfg
+1
-1
software/wendelin-scalability/test-common.cfg
software/wendelin-scalability/test-common.cfg
+17
-0
software/wendelin-scalability/test-fluentd-1pb.cfg
software/wendelin-scalability/test-fluentd-1pb.cfg
+3
-2
software/wendelin-scalability/test-fluentd-common.cfg
software/wendelin-scalability/test-fluentd-common.cfg
+2
-16
software/wendelin-scalability/test-many-small-transactions.cfg
...are/wendelin-scalability/test-many-small-transactions.cfg
+48
-0
software/wendelin-scalability/test-much-deduplication-high-compressibility.cfg
...lability/test-much-deduplication-high-compressibility.cfg
+5
-1
software/wendelin-scalability/test-neo.cfg
software/wendelin-scalability/test-neo.cfg
+46
-0
software/wendelin-scalability/test_scalability_fluentd/ExtensionTemplateItem/portal_components/extension.erp5.ScalabilityFluentd.py
...em/portal_components/extension.erp5.ScalabilityFluentd.py
+53
-0
software/wendelin-scalability/test_scalability_fluentd/ExtensionTemplateItem/portal_components/extension.erp5.ScalabilityFluentd.xml
...m/portal_components/extension.erp5.ScalabilityFluentd.xml
+126
-0
software/wendelin-scalability/test_scalability_fluentd/PathTemplateItem/portal_skins/custom/ERP5Site_simulateFluentdIngestion.xml
...portal_skins/custom/ERP5Site_simulateFluentdIngestion.xml
+28
-0
software/wendelin-scalability/test_scalability_fluentd/bt/template_extension_id_list
...ty/test_scalability_fluentd/bt/template_extension_id_list
+1
-0
software/wendelin-scalability/test_scalability_fluentd/bt/template_path_list
...calability/test_scalability_fluentd/bt/template_path_list
+2
-1
stack/caddy/Caddyfile.in
stack/caddy/Caddyfile.in
+12
-0
stack/caddy/buildout.cfg
stack/caddy/buildout.cfg
+1
-1
stack/caucase/buildout.cfg
stack/caucase/buildout.cfg
+1
-1
stack/cloudooo.cfg
stack/cloudooo.cfg
+1
-1
stack/erp5/buildout.cfg
stack/erp5/buildout.cfg
+1
-1
stack/erp5/buildout.hash.cfg
stack/erp5/buildout.hash.cfg
+4
-4
stack/erp5/instance-balancer.cfg.in
stack/erp5/instance-balancer.cfg.in
+1
-1
stack/erp5/instance-erp5.cfg.in
stack/erp5/instance-erp5.cfg.in
+1
-1
stack/erp5/instance-mariadb.cfg.in
stack/erp5/instance-mariadb.cfg.in
+2
-2
stack/erp5/mysql-querydigest.sh.in
stack/erp5/mysql-querydigest.sh.in
+8
-7
stack/monitor/buildout.cfg
stack/monitor/buildout.cfg
+1
-0
stack/slapos.cfg
stack/slapos.cfg
+5
-2
No files found.
component/fontconfig/buildout.cfg
View file @
7291d0fc
...
...
@@ -7,14 +7,15 @@ extends =
../bzip2/buildout.cfg
../zlib/buildout.cfg
../bzip2/buildout.cfg
../gperf/buildout.cfg
parts =
fontconfig
[fontconfig]
recipe = slapos.recipe.cmmi
url = http://fontconfig.org/release/fontconfig-2.12.
1
.tar.bz2
md5sum =
b5af5a423ee3b5cfc34846838963c058
url = http://fontconfig.org/release/fontconfig-2.12.
6
.tar.bz2
md5sum =
733f5e2371ca77b69707bd7b30cc2163
pkg_config_depends = ${freetype:pkg_config_depends}:${freetype:location}/lib/pkgconfig:${libxml2:location}/lib/pkgconfig
# XXX-Cedric : should we use --with-add-fonts={somefont:location}/share,{someotherfont:location}/share?
configure-options =
...
...
@@ -23,7 +24,7 @@ configure-options =
--enable-libxml2
--with-default-fonts=${fonts:location}
environment =
PATH=${pkgconfig:location}/bin:%(PATH)s
PATH=${pkgconfig:location}/bin:
${gperf:location}/bin:
%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
CPPFLAGS=-I${zlib:location}/include -I${bzip2:location}/include
LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib
component/haproxy/buildout.cfg
View file @
7291d0fc
...
...
@@ -12,8 +12,8 @@ parts = haproxy
[haproxy]
recipe = slapos.recipe.cmmi
url = http://www.haproxy.org/download/1.
7/src/haproxy-1.7.9
.tar.gz
md5sum =
a2bbbdd45ffe18d99cdcf26aa992f92d
url = http://www.haproxy.org/download/1.
8/src/haproxy-1.8.1
.tar.gz
md5sum =
e42892d4b6ee33200fccaa1d81837e49
configure-command = true
# If the system is running on Linux 2.6, we use "linux26" as the TARGET,
# otherwise use "generic".
...
...
component/jemalloc/buildout.cfg
View file @
7291d0fc
...
...
@@ -5,7 +5,8 @@ parts =
[jemalloc]
recipe = slapos.recipe.cmmi
url = http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2
url = https://github.com/jemalloc/jemalloc/releases/download/${:version}/jemalloc-${:version}.tar.bz2
version = 3.6.0
md5sum = e76665b63a8fddf4c9f26d2fa67afdf2
configure-options =
--disable-static
...
...
component/keras/buildout.cfg
View file @
7291d0fc
...
...
@@ -25,7 +25,7 @@ interpreter = keras-python
scripts = keras-python
[versions]
Keras = 2.
0.8
tensorflow = 1.4.0
rc1
Keras = 2.
1.0
tensorflow = 1.4.0
h5py = 2.7.0rc2
Cython = 0.25.2
component/mariadb/buildout.cfg
View file @
7291d0fc
...
...
@@ -12,7 +12,6 @@ extends =
../ncurses/buildout.cfg
../openssl/buildout.cfg
../patch/buildout.cfg
../pcre/buildout.cfg
../pkgconfig/buildout.cfg
../readline/buildout.cfg
../xz-utils/buildout.cfg
...
...
@@ -27,8 +26,9 @@ parts =
[mariadb]
recipe = slapos.recipe.cmmi
url = https://downloads.mariadb.org/f/mariadb-10.1.28/source/mariadb-10.1.28.tar.gz/from/http%3A//fr.mirror.babylon.network/mariadb/?serve
md5sum = 38acd5b44c56791701d80fddf088ef38
url = https://downloads.mariadb.org/f/mariadb-${:version}/source/mariadb-${:version}.tar.gz/from/http%3A//fr.mirror.babylon.network/mariadb/?serve
version = 10.1.30
md5sum = c424fd12bdff388e3da1bdecf42626c9
patch-options = -p0
patches =
${:_profile_base_location_}/mariadb_10.1.21_create_system_tables__no_test.patch#3c76aa9564a162f13aced7c0a3f783b3
...
...
@@ -45,7 +45,7 @@ configure-options =
-DWITH_ZLIB=system
-DWITH_READLINE=0
-DWITH_PIC=1
-DWITH_PCRE=
system
-DWITH_PCRE=
bundled
-DENABLE_DTRACE=0
-DWITH_EXTRA_CHARSETS=complex
-DWITH_EMBEDDED_SERVER=0
...
...
@@ -56,22 +56,22 @@ configure-options =
-DWITH_INNODB_LZO=OFF
-DWITH_INNODB_SNAPPY=OFF
-DWITH_SAFEMALLOC=OFF
-D
WITHOUT_EXAMPLE_STORAGE_ENGINE=1
-D
WITHOUT_MROONGA_STORAGE_ENGINE=1
-D
WITHOUT_DAEMON_EXAMPLE=1
-D
PLUGIN_DAEMON_EXAMPLE=NO
-D
PLUGIN_EXAMPLE=NO
-D
PLUGIN_MROONGA=NO
-DCMAKE_C_FLAGS="${:CMAKE_CFLAGS}"
-DCMAKE_CXX_FLAGS="${:CMAKE_CFLAGS}"
-DCMAKE_INSTALL_RPATH=${:CMAKE_LIBRARY_PATH}
CMAKE_CFLAGS = -I${bzip2:location}/include -I${jemalloc:location}/include -I${libaio:location}/include -I${libxml2:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${
pcre:location}/include -I${
readline5:location}/include -I${xz-utils:location}/include -I${zlib:location}/include ${:extra_cflags}
CMAKE_LIBRARY_PATH = ${bzip2:location}/lib:${jemalloc:location}/lib:${libaio:location}/lib:${libxml2:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${
pcre:location}/lib:${
readline5:location}/lib:${xz-utils:location}/lib:${zlib:location}/lib${:extra_library_path}
CMAKE_CFLAGS = -I${bzip2:location}/include -I${jemalloc:location}/include -I${libaio:location}/include -I${libxml2:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${readline5:location}/include -I${xz-utils:location}/include -I${zlib:location}/include ${:extra_cflags}
CMAKE_LIBRARY_PATH = ${bzip2:location}/lib:${jemalloc:location}/lib:${libaio:location}/lib:${libxml2:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${readline5:location}/lib:${xz-utils:location}/lib:${zlib:location}/lib${:extra_library_path}
extra_cflags =
extra_include_path =
extra_library_path =
environment =
CMAKE_PROGRAM_PATH=${cmake:location}/bin
CMAKE_INCLUDE_PATH=${bzip2:location}/include:${libaio:location}/include:${libaio:location}/include:${libxml2:location}/include:${ncurses:location}/include:${openssl:location}/include:${
pcre:location}/include:${
readline5:location}/include:${xz-utils:location}/include:${zlib:location}/include${:extra_include_path}
CMAKE_INCLUDE_PATH=${bzip2:location}/include:${libaio:location}/include:${libaio:location}/include:${libxml2:location}/include:${ncurses:location}/include:${openssl:location}/include:${readline5:location}/include:${xz-utils:location}/include:${zlib:location}/include${:extra_include_path}
CMAKE_LIBRARY_PATH=${:CMAKE_LIBRARY_PATH}
LDFLAGS=-L${bzip2:location}/lib -L${jemalloc:location}/lib -L${libaio:location}/lib -L${
pcre:location}/lib -L${
xz-utils:location}/lib -L${zlib:location}/lib
LDFLAGS=-L${bzip2:location}/lib -L${jemalloc:location}/lib -L${libaio:location}/lib -L${xz-utils:location}/lib -L${zlib:location}/lib
PATH=${patch:location}/bin:%(PATH)s
post-install =
mkdir -p ${:location}/include/wsrep &&
...
...
@@ -108,6 +108,6 @@ pre-build =
sed -i -e "s,${mariadb:location}/include,$(pwd)/fake_mariadb_source/include,g" Makefile */Makefile
environment =
PATH=${groonga:location}/bin:${patch:location}/bin:${pkgconfig:location}/bin:%(PATH)s
CPPFLAGS=-I${groonga:location}/include/groonga
-I${pcre:location}/include
CPPFLAGS=-I${groonga:location}/include/groonga
LDFLAGS=-L${groonga:location}/lib
PKG_CONFIG_PATH=${groonga:location}/lib/pkgconfig:${groonga-normalizer-mysql:location}/lib/pkgconfig
component/mariadb/mariarocks.cfg
View file @
7291d0fc
# Do not extend any file that touch buildout:parts.
[mariadb]
url = https://downloads.mariadb.org/f/mariadb-10.2.9/source/mariadb-10.2.9.tar.gz/from/http%3A//fr.mirror.babylon.network/mariadb/?serve
md5sum = c5
9999bd182ddeb3db3d55250aecd8f8
version = 10.2.12
md5sum = c5
bce588e3c53ebc417e37ecb0967aee
stable-patches =
configure-options +=
-DPLUGIN_DAEMON_EXAMPLE=NO
-DPLUGIN_EXAMPLE=NO
-DPLUGIN_MROONGA=NO
-DCMAKE_C_COMPILER=${gcc:location}/bin/gcc
-DCMAKE_CXX_COMPILER=${gcc:location}/bin/g++
extra_cflags = -I${zstd:location}/include
...
...
component/nginx/buildout.cfg
View file @
7291d0fc
...
...
@@ -18,6 +18,7 @@ patch-options = -p0
patch-binary = ${patch:location}/bin/patch
patches =
http://nginx.org/download/patch.2017.ranges.txt#40bf9f37c881cb3b10cfefd84ca92f6a
${:_profile_base_location_}/fix-gcc7-implicit-fallthrough-errors.patch
[nginx]
<= nginx-common
...
...
component/nginx/fix-gcc7-implicit-fallthrough-errors.patch
0 → 100644
View file @
7291d0fc
commit 8449f750e62cd229026e9df3bd023ec7e073a7d4
Author: Maxim Dounin <mdounin@mdounin.ru>
Date: Thu Apr 27 16:57:18 2017 +0300
Added missing "fall through" comments (ticket #1259).
Found by gcc7 (-Wimplicit-fallthrough).
diff --git src/core/ngx_murmurhash.c src/core/ngx_murmurhash.c
index c31e0e03..5ade658d 100644
--- src/core/ngx_murmurhash.c
+++ src/core/ngx_murmurhash.c
@@ -35,8 +35,10 @@
ngx_murmur_hash2(u_char *data, size_t len)
switch (len) {
case 3:
h ^= data[2] << 16;
+ /* fall through */
case 2:
h ^= data[1] << 8;
+ /* fall through */
case 1:
h ^= data[0];
h *= 0x5bd1e995;
diff --git src/http/ngx_http_parse.c src/http/ngx_http_parse.c
index 36220fdc..e8e51563 100644
--- src/http/ngx_http_parse.c
+++ src/http/ngx_http_parse.c
@@ -1396,6 +1396,7 @@
ngx_http_parse_complex_uri(ngx_http_request_t *r, ngx_uint_t merge_slashes)
goto done;
case '+':
r->plus_in_uri = 1;
+ /* fall through */
default:
state = sw_usual;
*u++ = ch;
@@ -1437,6 +1438,7 @@
ngx_http_parse_complex_uri(ngx_http_request_t *r, ngx_uint_t merge_slashes)
goto done;
case '+':
r->plus_in_uri = 1;
+ /* fall through */
default:
state = sw_usual;
*u++ = ch;
@@ -1484,6 +1486,7 @@
ngx_http_parse_complex_uri(ngx_http_request_t *r, ngx_uint_t merge_slashes)
goto done;
case '+':
r->plus_in_uri = 1;
+ /* fall through */
default:
state = sw_usual;
*u++ = ch;
diff --git src/os/unix/ngx_process.c src/os/unix/ngx_process.c
index dd50b5ca..993c032a 100644
--- src/os/unix/ngx_process.c
+++ src/os/unix/ngx_process.c
@@ -413,6 +413,7 @@
ngx_signal_handler(int signo, siginfo_t *siginfo, void *ucontext)
break;
}
ngx_debug_quit = 1;
+ /* fall through */
case ngx_signal_value(NGX_SHUTDOWN_SIGNAL):
ngx_quit = 1;
action = ", shutting down";
component/ocropy/buildout.cfg
View file @
7291d0fc
...
...
@@ -32,8 +32,8 @@ setup-eggs =
${matplotlib:egg}
${pillow-python:egg}
patches =
${:_profile_base_location_}/ocropy.patch
patch-options = -p
0
${:_profile_base_location_}/ocropy.patch
#dd7a02e1e63ed9df68e3a539b3e919eb
patch-options = -p
1
patch-binary = ${patch:location}/bin/patch
environment = ocropy-env
find-links = https://github.com/tmbdev/ocropy/tarball/4efbddca22bb2f0c639af0694e7a1386f2f097b5/ocropy-1.0.tar.gz
...
...
component/ocropy/ocropy.patch
View file @
7291d0fc
diff --git ocrolib/__init__.py ocrolib/__init__.py
From 1bb1546b12b0c08b1b32b293207de2d58d43ff1c Mon Sep 17 00:00:00 2001
From: Francois Le Corre <francois.lecorre@nexedi.com>
Date: Thu, 6 Apr 2017 11:32:27 +0200
Subject: [PATCH] WIP
- New OCROPY_MODEL_PATH environment variable to specify the position of models
- Import for the first time a module that compiles C code from python,
allowing us to have the static library built before runtime and
preventing us from using gcc through zope.
---
ocrolib/__init__.py | 3 ++-
ocrolib/common.py | 7 ++++---
ocrolib/native.py | 1 +
setup.py | 15 ++++++++++++---
4 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/ocrolib/__init__.py b/ocrolib/__init__.py
index 1e0d627..81e85fb 100644
--- ocrolib/__init__.py
+++ ocrolib/__init__.py
---
a/
ocrolib/__init__.py
+++
b/
ocrolib/__init__.py
@@ -1,7 +1,7 @@
__all__ = [
"binnednn","cairoextras","common","components","dbtables",
...
...
@@ -11,18 +27,18 @@ index 1e0d627..81e85fb 100644
]
################################################################
@@ -9,5 +9,6 @@
__all__ = [
@@ -9,5 +9,6 @@
################################################################
import default
+from psegutils import *
from common import *
from default import traceback as trace
diff --git
ocrolib/common.py
ocrolib/common.py
diff --git
a/ocrolib/common.py b/
ocrolib/common.py
index 27c0f26..14f088f 100644
--- ocrolib/common.py
+++ ocrolib/common.py
@@ -14,6 +14,7 @@
import unicodedata
---
a/
ocrolib/common.py
+++
b/
ocrolib/common.py
@@ -14,6 +14,7 @@
import inspect
import glob
import cPickle
...
...
@@ -38,7 +54,7 @@ index 27c0f26..14f088f 100644
def load_object(fname,zip=0,nofind=0,verbose=0):
"""Loads an object from disk. By default, this handles zipped files
and searches in the usual places for OCRopus. It also handles some
@@ -439,8 +441,7 @@
def load_object(fname,zip=0,nofind=0,verbose=0):
@@ -439,8 +441,7 @@
class names that have changed."""
if zip==0 and fname.endswith(".gz"):
zip = 1
if zip>0:
...
...
@@ -57,10 +73,10 @@ index 27c0f26..14f088f 100644
possible_prefixes.append("/usr/local/share/ocropus")
diff --git
ocrolib/native.py
ocrolib/native.py
diff --git
a/ocrolib/native.py b/
ocrolib/native.py
index b7a207f..240450b 100644
--- ocrolib/native.py
+++ ocrolib/native.py
---
a/
ocrolib/native.py
+++
b/
ocrolib/native.py
@@ -44,6 +44,7 @@
class CompileError(Exception):
def compile_and_find(c_string,prefix=".pynative",opt="-g -O4",libs="-lm",
...
...
@@ -69,22 +85,22 @@ index b7a207f..240450b 100644
if not os.path.exists(prefix):
os.mkdir(prefix)
m = hashlib.md5()
diff --git
setup.py
setup.py
index 2ec5832..
6697b12
100644
--- setup.py
+++ setup.py
@@ -10,7 +10,9 @@
assert sys.version_info[0]==2 and sys.version_info[1]>=7,\
diff --git
a/setup.py b/
setup.py
index 2ec5832..
0ad4d85
100644
---
a/
setup.py
+++
b/
setup.py
@@ -10,7 +10,9 @@
from distutils.core import setup #, Extension, Command
#from distutils.command.install_data import install_data
-if not os.path.exists("models/en-default.pyrnn.gz"):
+models = os.environ.get('OCROPY_MODEL_PATH'
, '').split(':') or \
+
[c for c in glob.glob("models/*pyrnn.gz")]
+models = os.environ.get('OCROPY_MODEL_PATH'
)
+
models = models.split(':') if models else glob.glob("models/*pyrnn.gz")
+if not models:
print()
print("You should download the default model 'en-default.pyrnn.gz'")
print("and put it into ./models.")
@@ -18,16 +20,23 @@
if not os.path.exists("models/en-default.pyrnn.gz"):
@@ -18,16 +20,23 @@
print("Check https://github.com/tmbdev/ocropy for the location")
print("of model files.")
print()
...
...
@@ -110,3 +126,6 @@ index 2ec5832..6697b12 100644
+ data_files= [('share/ocropus', models), ("", ["LICENSE"])],
scripts = scripts,
)
--
2.14.1
component/openssh/buildout.cfg
View file @
7291d0fc
...
...
@@ -28,3 +28,12 @@ configure-options =
--prefix=${buildout:parts-directory}/${:_buildout_section_name_}
--exec-prefix=${buildout:parts-directory}/${:_buildout_section_name_}
--with-privsep-path=${buildout:parts-directory}/${:_buildout_section_name_}/var/empty
[openssh-output]
# Shared binary location to ease migration
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = ${coreutils-output:test} -x ${:ssh} -a -x ${:keygen}
ssh = ${openssh:location}/bin/ssh
keygen = ${openssh:location}/bin/ssh-keygen
\ No newline at end of file
component/openssl/buildout.cfg
View file @
7291d0fc
...
...
@@ -16,8 +16,8 @@ parts =
[openssl]
recipe = slapos.recipe.cmmi
url = https://www.openssl.org/source/openssl-1.0.2
m
.tar.gz
md5sum = 1
0e9e37f492094b9ef296f68f24a7666
url = https://www.openssl.org/source/openssl-1.0.2
n
.tar.gz
md5sum = 1
3bdc1b1d1ff39b6fd42a255e74676a4
location = ${buildout:parts-directory}/${:_buildout_section_name_}
# 'prefix' option to override --openssldir/--prefix (which is useful
# when combined with INSTALL_PREFIX). Used by slapos.package.git/obs
...
...
component/rdiff-backup/buildout.cfg
View file @
7291d0fc
...
...
@@ -22,6 +22,13 @@ rpath =
# and pin the egg in the [versions] section of the stack or SR.
find-links = http://pkgs.fedoraproject.org/repo/pkgs/rdiff-backup/rdiff-backup-1.0.5.tar.gz/fa2a165fa07a94be52c52e3545bc7758/rdiff-backup-1.0.5.tar.gz
[rdiff-backup-build-1.3.4]
<= rdiff-backup-build
# use our own version
find-links = http://www.nexedi.org/static/packages/source/rdiff-backup-1.3.4nxd2.tar.gz
patches =
${:_profile_base_location_}/rdiff-backup-1.3.4-librsync-1.0.0.patch#31fafc8bc4a00f002f52008a9f3b671f
[rdiff-backup]
# Scripts only generation part for rdiff-backup
recipe = zc.recipe.egg
...
...
component/rdiff-backup/rdiff-backup-1.3.4-librsync-1.0.0.patch
0 → 100644
View file @
7291d0fc
Patch by Roman Tereshonkov and Kari Hautio for rdiff-backup <= 1.2.8 to avoid a build failure with
librsync >= 1.0.0 (which is a security bugfix release). The discussion and solution finding can be
found at https://bugs.launchpad.net/duplicity/+bug/1416344 (for duplicity).
--- rdiff-backup-1.3.4/rdiff_backup/_librsyncmodule.c 2009-03-16 15:36:21.000000000 +0100
+++ rdiff-backup-1.3.4/rdiff_backup/_librsyncmodule.c.librsync-1.0.0 2015-03-02 00:54:24.000000000 +0100
@@ -59,8 +59,13 @@
if (sm == NULL) return NULL;
sm->x_attr = NULL;
+#ifdef RS_DEFAULT_STRONG_LEN
sm->sig_job = rs_sig_begin((size_t)blocklen,
(size_t)RS_DEFAULT_STRONG_LEN);
+#else
+ sm->sig_job = rs_sig_begin((size_t)blocklen,
+ (size_t)8, RS_MD4_SIG_MAGIC);
+#endif
return (PyObject*)sm;
}
component/tensorboard/buildout.cfg
View file @
7291d0fc
...
...
@@ -56,14 +56,16 @@ location = ${buildout:parts-directory}/${:_buildout_section_name_}
need-tensorboard-build = ${tensorboard-build:location}
egg = tensorflow-tensorboard
bazel-bin = ${bazel:location}/bin
java_home_bin = ${bazel:java_home}/bin
numpy-python-command = ${buildout:bin-directory}/${numpy-egg:interpreter}
script =
os.makedirs(location)
workdir = self.options['tensorboard-repository-path']
egg_name = 'tensorflow_tensorboard-0.4.0rc
1
-py2.7.egg'
egg_name = 'tensorflow_tensorboard-0.4.0rc
3
-py2.7.egg'
dist_dir = os.path.join(workdir, 'dist')
dest_dir = os.path.join(self.buildout['buildout']['eggs-directory'], egg_name)
env = {'PATH':':'.join([self.options['bazel-bin'],
self.options['java_home_bin'],
os.environ['PATH']]),
'PYTHON_BIN_PATH':self.options['numpy-python-command'],
}
...
...
component/tensorflow/buildout.cfg
View file @
7291d0fc
...
...
@@ -27,7 +27,7 @@ location = ${buildout:parts-directory}/${:_buildout_section_name_}
recipe = plone.recipe.command
stop-on-error = true
repository = https://github.com/tensorflow/tensorflow
tag =
r1.4
tag =
v1.4.0
git-binary = ${git:location}/bin/git
patch-binary = ${patch:location}/bin/patch
location = ${buildout:parts-directory}/${:_buildout_section_name_}
...
...
@@ -110,7 +110,7 @@ egg = tensorflow
script =
os.makedirs(location)
workdir = self.options['tensorflow-repository-path']
egg_name = 'tensorflow-1.4.0
rc1
-py2.7-linux-x86_64.egg'
egg_name = 'tensorflow-1.4.0-py2.7-linux-x86_64.egg'
dist_dir = os.path.join(workdir, 'dist')
dest_dir = os.path.join(self.buildout['buildout']['eggs-directory'], egg_name)
call(['bazel-bin/tensorflow/tools/pip_package/build_pip_package', dist_dir], cwd=workdir)
...
...
setup.py
View file @
7291d0fc
...
...
@@ -55,11 +55,12 @@ setup(name=name,
packages
=
find_packages
(),
include_package_data
=
True
,
install_requires
=
[
'enum34'
,
# for inotify-simple
'jsonschema'
,
'hexagonit.recipe.download'
,
'netaddr'
,
# to manipulate on IP addresses
'setuptools'
,
# namespaces
'inotify
x'
,
# XXX use pyinotify instead
'inotify
_simple'
,
'lock_file'
,
#another lockfile implementation for multiprocess
'slapos.core'
,
# uses internally
'zc.buildout'
,
# plays with buildout
...
...
slapos/recipe/erp5_test/__init__.py
View file @
7291d0fc
...
...
@@ -85,7 +85,7 @@ class Recipe(GenericBaseRecipe):
mysql_connection_string_list
),
]
+
common_list
,
**
common_dict
)]))
path_list
.
append
(
self
.
createPythonScript
(
self
.
options
[
'run-test-suite'
],
__name__
+
'.test.run
UnitTest
'
,
[
dict
(
__name__
+
'.test.run
TestSuite
'
,
[
dict
(
call_list
=
[
self
.
options
[
'run-test-suite-binary'
],
'--db_list'
,
','
.
join
(
mysql_connection_string_list
),
]
+
common_list
,
**
common_dict
)]))
...
...
slapos/recipe/erp5_test/test.py
View file @
7291d0fc
...
...
@@ -34,7 +34,10 @@ def runTestSuite(args):
if
'test_ca_path'
in
d
:
env
[
'TEST_CA_PATH'
]
=
d
[
'test_ca_path'
]
if
'prepend_path'
in
d
:
env
[
'PATH'
]
=
':'
.
join
([
d
[
'prepend_path'
]]
+
os
.
environ
.
get
(
'PATH'
,
''
).
split
(
':'
))
try
:
env
[
'PATH'
]
=
d
[
'prepend_path'
]
+
':'
+
env
[
'PATH'
]
except
KeyError
:
env
[
'PATH'
]
=
d
[
'prepend_path'
]
if
'instance_home'
in
d
:
env
[
'INSTANCE_HOME'
]
=
d
[
'instance_home'
]
env
[
'REAL_INSTANCE_HOME'
]
=
d
[
'instance_home'
]
...
...
@@ -57,29 +60,4 @@ def runTestSuite(args):
argument_list
.
append
(
env
)
os
.
execle
(
executable_filepath
,
*
argument_list
)
def
runUnitTest
(
args
):
env
=
os
.
environ
.
copy
()
d
=
args
[
0
]
if
'openssl_binary'
in
d
:
env
[
'OPENSSL_BINARY'
]
=
d
[
'openssl_binary'
]
if
'test_ca_path'
in
d
:
env
[
'TEST_CA_PATH'
]
=
d
[
'test_ca_path'
]
if
'prepend_path'
in
d
:
env
[
'PATH'
]
=
':'
.
join
([
d
[
'prepend_path'
]]
+
os
.
environ
.
get
(
'PATH'
,
''
).
split
(
':'
))
if
'instance_home'
in
d
:
env
[
'INSTANCE_HOME'
]
=
d
[
'instance_home'
]
env
[
'REAL_INSTANCE_HOME'
]
=
d
[
'instance_home'
]
# Deal with Shebang size limitation
executable_filepath
=
d
[
'call_list'
][
0
]
file_object
=
open
(
executable_filepath
,
'r'
)
line
=
file_object
.
readline
()
file_object
.
close
()
argument_list
=
[]
if
line
[:
2
]
==
'#!'
:
executable_filepath
=
line
[
2
:].
strip
()
argument_list
.
append
(
executable_filepath
)
argument_list
.
extend
(
d
[
'call_list'
])
argument_list
.
extend
(
sys
.
argv
[
1
:])
argument_list
.
append
(
env
)
os
.
execle
(
executable_filepath
,
*
argument_list
)
runUnitTest
=
runTestSuite
slapos/recipe/librecipe/execute.py
View file @
7291d0fc
...
...
@@ -3,47 +3,31 @@ import os
import
signal
import
subprocess
import
time
import
inotifyx
from
collections
import
defaultdict
from
inotify_simple
import
INotify
,
flags
def
_wait_files_creation
(
file_list
):
# Etablish a list of directory and subfiles
directories
=
dict
()
for
dirname
,
filename
in
[
os
.
path
.
split
(
f
)
for
f
in
file_list
]:
directories
.
setdefault
(
dirname
,
dict
())
directories
[
dirname
][
filename
]
=
False
# Establish a list of directory and subfiles.
# and test existence before watching, so that we don't miss an event.
directories
=
defaultdict
(
dict
)
for
f
in
file_list
:
dirname
,
filename
=
os
.
path
.
split
(
f
)
directories
[
dirname
][
filename
]
=
os
.
path
.
lexists
(
f
)
def
all_files_exists
():
return
all
(
[
all
(
files
.
values
())
for
files
in
directories
.
values
()]
)
return
all
(
all
(
files
.
itervalues
())
for
files
in
directories
.
itervalues
()
)
fd
=
inotifyx
.
init
()
try
:
# Watch every directories where the file are
watchdescriptors
=
dict
()
for
dirname
in
directories
.
keys
():
wd
=
inotifyx
.
add_watch
(
fd
,
dirname
,
inotifyx
.
IN_CREATE
|
inotifyx
.
IN_DELETE
|
inotifyx
.
IN_MOVE
)
watchdescriptors
[
wd
]
=
dirname
# Set to True the file wich exists
for
dirname
,
filename
in
[
os
.
path
.
split
(
f
)
for
f
in
file_list
]:
directories
[
dirname
][
filename
]
=
os
.
path
.
exists
(
os
.
path
.
join
(
dirname
,
filename
))
# Let's wait for every file creation
while
not
all_files_exists
():
events_list
=
inotifyx
.
get_events
(
fd
)
for
event
in
events_list
:
dirname
=
watchdescriptors
[
event
.
wd
]
if
event
.
name
in
directories
[
dirname
]:
# One of watched file was created or deleted
if
event
.
mask
&
inotifyx
.
IN_DELETE
:
directories
[
dirname
][
event
.
name
]
=
False
else
:
directories
[
dirname
][
event
.
name
]
=
True
with
INotify
()
as
inotify
:
watchdescriptors
=
{
inotify
.
add_watch
(
dirname
,
flags
.
CREATE
|
flags
.
DELETE
|
flags
.
MOVED_TO
|
flags
.
MOVED_FROM
):
dirname
for
dirname
in
directories
}
finally
:
os
.
close
(
fd
)
while
not
all_files_exists
():
for
event
in
inotify
.
read
():
directory
=
directories
[
watchdescriptors
[
event
.
wd
]]
if
event
.
name
in
directory
:
directory
[
event
.
name
]
=
event
.
mask
&
(
flags
.
CREATE
|
flags
.
MOVED_TO
)
def
execute
(
args
):
"""Portable execution with process replacement"""
...
...
@@ -83,8 +67,8 @@ def generic_exec(args):
os
.
execve
(
exec_list
[
0
],
exec_list
+
sys
.
argv
[
1
:],
exec_env
)
def
sig_handler
(
sig
nal
,
frame
):
print
'Received signal %r, killing children and exiting'
%
sig
nal
def
sig_handler
(
sig
,
frame
):
print
'Received signal %r, killing children and exiting'
%
sig
if
child_pg
is
not
None
:
os
.
killpg
(
child_pg
,
signal
.
SIGHUP
)
os
.
killpg
(
child_pg
,
signal
.
SIGTERM
)
...
...
@@ -97,6 +81,7 @@ signal.signal(signal.SIGTERM, sig_handler)
def
execute_with_signal_translation
(
args
):
"""Run process as children and translate from SIGTERM to another signal"""
global
child_pg
child
=
subprocess
.
Popen
(
args
,
close_fds
=
True
,
preexec_fn
=
os
.
setsid
)
child_pg
=
child
.
pid
try
:
...
...
slapos/recipe/librecipe/inotify.py
View file @
7291d0fc
...
...
@@ -25,8 +25,7 @@
#
##############################################################################
import
os
import
inotifyx
from
inotify_simple
import
INotify
,
flags
def
subfiles
(
directory
):
"""Return the list of subfiles of a directory, and wait for the newly created
...
...
@@ -34,18 +33,12 @@ def subfiles(directory):
CAUTION : *DONT TRY TO CONVERT THE RESULT OF THIS FUNCTION INTO A LIST !
ALWAYS ITERATE OVER IT !!!*"""
watchfd
=
inotifyx
.
init
()
inotifyx
.
add_watch
(
watchfd
,
directory
,
inotifyx
.
IN_CREATE
)
try
:
subfiles
=
set
(
os
.
listdir
(
directory
))
subfiles
|=
set
([
file_
.
name
for
file_
in
inotifyx
.
get_events
(
watchfd
,
0
)]
)
with
INotify
()
as
inotify
:
inotify
.
add_watch
(
directory
,
flags
.
CLOSE_WRITE
|
flags
.
MOVED_TO
)
names
=
os
.
listdir
(
directory
)
while
True
:
for
file_
in
subfiles
:
yield
os
.
path
.
join
(
directory
,
file_
)
subfiles
=
[
file_
.
name
for
file_
in
inotifyx
.
get_events
(
watchfd
)]
finally
:
os
.
close
(
watchfd
)
for
name
in
names
:
yield
os
.
path
.
join
(
directory
,
name
)
names
=
(
event
.
name
for
event
in
inotify
.
read
())
slapos/recipe/neoppod.py
View file @
7291d0fc
...
...
@@ -92,6 +92,8 @@ class Storage(NeoBaseRecipe):
engine
=
self
.
options
.
get
(
'engine'
)
if
engine
:
# old versions of NEO don't support -e
r
+=
'-e'
,
engine
if
self
.
options
.
get
(
'dedup'
):
r
.
append
(
'--dedup'
)
if
self
.
options
.
get
(
'disable-drop-partitions'
):
r
.
append
(
'--disable-drop-partitions'
)
return
r
...
...
slapos/test/recipe/test_inotify.py
0 → 100644
View file @
7291d0fc
import
os
,
shutil
,
tempfile
,
threading
,
unittest
from
slapos.recipe.librecipe
import
execute
,
inotify
class
TestInotify
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
tmp
=
tempfile
.
mkdtemp
()
def
tearDown
(
self
):
shutil
.
rmtree
(
self
.
tmp
)
def
test_subfiles
(
self
):
p
=
lambda
x
:
os
.
path
.
join
(
self
.
tmp
,
x
)
def
create
(
name
,
text
):
a
=
open
(
p
(
name
),
'w'
)
a
.
write
(
text
)
a
.
flush
()
return
a
def
check
(
name
,
text
):
path
=
next
(
notified
)
self
.
assertEqual
(
path
,
p
(
name
))
with
open
(
path
)
as
f
:
self
.
assertEqual
(
f
.
read
(),
text
)
a
=
create
(
'first'
,
'blah'
)
a
.
write
(
'...'
)
notified
=
inotify
.
subfiles
(
self
.
tmp
)
check
(
'first'
,
'blah'
)
os
.
link
(
p
(
a
.
name
),
p
(
'a hard link'
))
# ignored
b
=
create
(
'other'
,
'hello'
)
b
.
close
()
check
(
'other'
,
'hello'
)
c
=
create
(
'last'
,
'!!!'
)
a
.
close
()
check
(
'first'
,
'blah...'
)
os
.
rename
(
p
(
a
.
name
),
p
(
b
.
name
))
check
(
'other'
,
'blah...'
)
c
.
close
()
check
(
'last'
,
'!!!'
)
def
test_wait_files_creation
(
self
):
file_list
=
(
'foo'
,
'bar'
,
'hello/world'
,
'hello/world!'
,
'a/b/c'
,
)
create
=
lambda
x
:
open
(
x
,
'w'
).
close
()
p
=
lambda
x
:
os
.
path
.
join
(
self
.
tmp
,
x
)
P
=
lambda
x
:
p
(
file_list
[
x
])
create
(
P
(
1
))
os
.
mkdir
(
p
(
'hello'
))
os
.
makedirs
(
p
(
'a/b'
))
t
=
threading
.
Thread
(
target
=
execute
.
_wait_files_creation
,
args
=
(
map
(
p
,
file_list
),))
t
.
daemon
=
True
t
.
start
()
def
check
():
t
.
join
(.
2
)
self
.
assertTrue
(
t
.
is_alive
())
check
()
for
x
in
P
(
3
),
p
(
'a/b/d'
),
P
(
0
):
create
(
x
)
check
()
os
.
rename
(
P
(
3
),
P
(
2
))
os
.
rename
(
p
(
'a/b/d'
),
P
(
4
))
check
()
os
.
remove
(
P
(
1
))
for
x
in
P
(
3
),
P
(
1
):
create
(
x
)
t
.
join
(
10
)
self
.
assertFalse
(
t
.
is_alive
())
software/agent/software.cfg
View file @
7291d0fc
...
...
@@ -50,7 +50,7 @@ gitdb = 0.6.4
pycrypto = 2.6.1
pycurl = 7.43.0
slapos.recipe.download = 1.0
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
slapos.toolbox = 0.73
smmap = 0.9.0
...
...
software/apache-frontend/software.cfg
View file @
7291d0fc
...
...
@@ -10,7 +10,7 @@ gitdb = 0.6.4
plone.recipe.command = 1.1
pycrypto = 2.6.1
rdiff-backup = 1.0.5+SlapOSPatched001
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
slapos.toolbox = 0.73
smmap = 0.9.0
numpy = 1.11.2
...
...
software/backupserver/instance-pullrdiffbackup.cfg.in
View file @
7291d0fc
...
...
@@ -27,6 +27,7 @@ statistic = $${:srv}/statistic
backupscript = $${:etc}/backup
www = $${:srv}/www
home = $${:etc}/home
promises = $${:etc}/promise
ssl = $${:etc}/ssl
ssh = $${:home}/.ssh
...
...
@@ -49,12 +50,13 @@ logfile = $${directory:log}/crond.log
{% set frequency = slave_instance.get('frequency', '') -%}
{% set hostname = slave_instance.get('hostname', '') -%}
{% set connection = slave_instance.get('connection', '') -%}
{% set connection_port = slave_instance.get('connection_port', '22') -%}
{% set include = slave_instance.get('include', '') -%}
{% set include_string = "' --include='".join(include.split(' ')) -%}
{% set exclude = slave_instance.get('exclude', '') -%}
{% set exclude_string = '' -%}
{% set sudo = slave_instance.get('sudo', 'False') -%}
{% set remote_schema =
'rdiff-backup
--server --restrict-read-only / -- "$@"' -%}
{% set remote_schema =
slave_instance.get('remote_rdiff_path', 'rdiff-backup') + '
--server --restrict-read-only / -- "$@"' -%}
{% if (exclude != '') -%}
{% set exclude_string = "' --exclude='".join(exclude.split(' ')) -%}
...
...
@@ -73,23 +75,19 @@ directory = $${directory:backup}/$${:_buildout_section_name_}
[{{ slave_reference }}-backup-private_key]
recipe = plone.recipe.command
stop-on-error =
fals
e
command = ${
dropbear-output:keygen} -t $${:type} -s 2048 -f $${:key}
stop-on-error =
tru
e
command = ${
coreutils-output:rm} -f $${:key} $${:public_key} && ${openssh-output:keygen} -t $${:type} -b 2048 -f $${:key} -q -N ""
key = $${directory:ssh}/$${:_buildout_section_name_}
public_key = $${:key}.pub
location = $${:public_key}
type = rsa
[{{ slave_reference }}-backup-public_key]
recipe = plone.recipe.command
stop-on-error = true
command = ${coreutils-output:rm} -f $${:key} && ${dropbear-output:keygen} -y -f {{ '$${' ~ slave_reference }}-backup-private_key:key} | ${grep-output:grep} {{ '$${' ~ slave_reference }}-backup-private_key:type} > $${:key}
key = {{ '$${' ~ slave_reference }}-backup-private_key:key}.pub
location = $${:key}
# Insert as a beginning part, to ensure that all public keys are generated before trying to publish. This will reduce the number of slapgrid-cp run.
{% do part_list.insert(0, "%s-backup-p
ublic
_key" % slave_reference) -%}
{% do part_list.insert(0, "%s-backup-p
rivate
_key" % slave_reference) -%}
[{{ slave_reference }}-backup-read-public_key]
recipe = slapos.cookbook:readline
storage-path = {{ '$${' ~ slave_reference }}-backup-p
ublic_key:
key}
storage-path = {{ '$${' ~ slave_reference }}-backup-p
rivate_key:public_
key}
# Publish slave {{ slave_reference }} information
[{{ slave_reference }}-backup-publish]
...
...
@@ -107,6 +105,7 @@ mode = 0700
datadirectory = {{ '$${' ~ slave_reference }}-backup-directory:directory}
sshkey = {{ '$${' ~ slave_reference }}-backup-private_key:key}
connection = {{ connection }}
connection_port = {{ connection_port }}
hostname = {{ hostname }}
include = {{ include_string }}
exclude_string = {{ exclude_string }}
...
...
@@ -169,6 +168,12 @@ mode = 0700
virtual-depends =
$${nginx-configuration:ip}
[nginx-listen-promise]
recipe = slapos.cookbook:check_port_listening
hostname = $${nginx-configuration:ip}
port = $${nginx-configuration:port}
path = $${directory:promises}/nginx_listen
[nginx-configuration]
recipe = slapos.recipe.template
url = ${template-nginx-configuration:output}
...
...
@@ -187,6 +192,7 @@ ssl_crt = $${directory:ssl}/nginx.crt
parts =
dcron-service
nginx-service
nginx-listen-promise
activate-crontab-file
publish-global-rss
{% for part in part_list -%}
...
...
software/backupserver/software.cfg
View file @
7291d0fc
...
...
@@ -10,7 +10,7 @@ extends =
# ../../component/git/buildout.cfg
# ../../component/subversion/buildout.cfg
../../component/rsync/buildout.cfg
../../component/
dropbear
/buildout.cfg
../../component/
openssh
/buildout.cfg
../../component/grep/buildout.cfg
../../component/findutils/buildout.cfg
# ../../stack/flask.cfg
...
...
@@ -67,7 +67,7 @@ mode = 0644
[template-backup-script]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/template-backup-script.sh.in
md5sum =
47b20031db3b575651d8515d5add23e6
md5sum =
fa79e0307e12e2f5b1f2adbd261995fc
output = ${buildout:directory}/template-backup-script.sh.in
mode = 0644
...
...
@@ -88,7 +88,7 @@ mode = 0644
[status2rss]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/status2rss.py
md5sum =
0cd1cf97b199dd18fc0168c7281890ea
md5sum =
a023694817975e73998fb9187a6015d6
output = ${buildout:directory}/status2rss.py
mode = 0644
...
...
@@ -105,7 +105,7 @@ mode = 0644
[template-pullrdiffbackup]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-pullrdiffbackup.cfg.in
md5sum =
061b98d001b501c9e1beb424e8802d3d
md5sum =
a2fb7b0cdd944be99da4122eb6f07749
output = ${buildout:directory}/template-pullrdiffbackup.cfg
mode = 0644
...
...
@@ -116,8 +116,14 @@ md5sum = 42021b325159dff29e4bd4e33b8ff2f3
output = ${buildout:directory}/template.cfg
mode = 0644
[rdiff-backup]
eggs =
${rdiff-backup-build-1.3.4:egg}
[versions]
rdiff-backup = 1.0.5+SlapOSPatched001
# 1.3.4nxd2 is invalid version string, thus pached version string is not '1.3.4nxd2+SlapOSPatched001'
# but '1.3.4nxd2-SlapOSPatched001'.
rdiff-backup = 1.3.4nxd2-SlapOSPatched001
gunicorn = 19.1.1
plone.recipe.command = 1.1
slapos.recipe.template = 2.4.2
...
...
software/backupserver/status2rss.py
View file @
7291d0fc
...
...
@@ -29,9 +29,8 @@ while 1:
title
=
desc
,
description
=
"<p>%s</p>"
%
"<br/>"
.
join
((
"%s, %s
\
n
<a href='http://www.nongnu.org/rdiff-backup/FAQ.html#statistics'>Lastest statistic</a>
\
n
%s"
%
(
time
,
desc
,
open
(
statistic
).
read
())).
split
(
"
\
n
"
)),
link
=
LINK
,
pubDate
=
datetime
.
datetime
.
fromtimestamp
(
mktime_tz
(
parsedate_tz
(
time
))),
guid
=
PyRSS2Gen
.
Guid
(
base64
.
b64encode
(
"%s, %s"
%
(
time
,
desc
)))
guid
=
PyRSS2Gen
.
Guid
(
base64
.
b64encode
(
"%s, %s"
%
(
time
,
desc
))
,
isPermaLink
=
0
)
)
items
.
append
(
rss_item
)
...
...
software/backupserver/template-backup-script.sh.in
View file @
7291d0fc
...
...
@@ -18,7 +18,7 @@ ${rdiff-backup-output:rdiff-backup} \
$${:exclude_string} \
--include='$${:include}' \
--exclude='**' \
--remote-schema '${
dropbear-output:ssh} -T -y -i $${:sshkey
} %s $${:remote_schema}' \
--remote-schema '${
openssh-output:ssh} -6 -q -T -y -o "StrictHostKeyChecking no" -i $${:sshkey} -p $${:connection_port
} %s $${:remote_schema}' \
$${:connection}::/ ./
RESULT=$?
...
...
software/buildout-testing/runTestSuite.in
View file @
7291d0fc
...
...
@@ -77,7 +77,7 @@ def main():
test_title = args.test_suite_title or args.test_suite
if args.master_url:
tool = taskdistribution.TaskDistribut
ionTool
(args.master_url)
tool = taskdistribution.TaskDistribut
or
(args.master_url)
test_result = tool.createTestResult(args.revision,
list(test_dict),
args.test_node_title,
...
...
software/cdn-me/software.cfg
View file @
7291d0fc
...
...
@@ -40,4 +40,4 @@ cns.recipe.symlink = 0.2.3
collective.recipe.environment = 0.2.0
erp5.util = 0.4.49
plone.recipe.command = 1.1
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
software/dream/software.cfg
View file @
7291d0fc
...
...
@@ -53,7 +53,7 @@ mysqlclient = 1.3.12
# indirect dependancies
cp.recipe.cmd = 0.5
plone.recipe.command = 1.1
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
zope.exceptions = 4.0.7
zope.testing = 4.1.3
zc.recipe.testrunner = 2.0.0
...
...
software/erp5/README.rst
View file @
7291d0fc
...
...
@@ -3,12 +3,8 @@ Available ``software-type`` values
- ``default``
Recommended for production use.
- ``create-erp5-site``
Automated creation of ERP5Site instance, for easy deployment.
Usage in production discouraged due to the increased risk of data loss.
Recommended for developemnt and production use. Automatic creation of
erp5-site.
Notes
=====
...
...
software/erp5/software.cfg.json
View file @
7291d0fc
...
...
@@ -9,13 +9,6 @@
"request"
:
"instance-erp5-input-schema.json"
,
"response"
:
"instance-erp5-output-schema.json"
,
"index"
:
0
},
"create-erp5-site"
:
{
"title"
:
"Create ERP5 Site"
,
"description"
:
"Automated ERP5Site creation on instanciation when ZODB is found empty."
,
"request"
:
"instance-erp5-input-schema.json"
,
"response"
:
"instance-erp5-output-schema.json"
,
"index"
:
1
}
}
}
software/erp5testnode/software.cfg
View file @
7291d0fc
...
...
@@ -58,8 +58,8 @@ mode = 0644
[versions]
PyXML = 0.8.5
erp5.util = 0.4.
49
slapos.recipe.template = 4.
1
erp5.util = 0.4.
50
slapos.recipe.template = 4.
2
ipython = 5.3.0
apache-libcloud = 2.1.0
gitdb2 = 2.0.2
...
...
software/erp5testnode/testsuite/deploy-test/runTestSuite.py
View file @
7291d0fc
...
...
@@ -158,10 +158,10 @@ def main():
access_url_https
=
'https://%s:10443'
%
(
args
.
partition_ipv4
,)
os
.
environ
[
'TEST_ACCESS_URL_HTTP'
]
=
access_url_http
os
.
environ
[
'TEST_ACCESS_URL_HTTPS'
]
=
access_url_https
tool
=
taskdistribution
.
TaskDistributionTool
(
distributor
=
taskdistribution
.
TaskDistributor
(
args
.
master_url
,
logger
=
logger
)
test_result
=
tool
.
createTestResult
(
test_result
=
distributor
.
createTestResult
(
revision
,
suite
.
getTestList
(),
args
.
test_node_title
,
suite
.
allow_restart
,
test_suite_title
,
args
.
project_title
)
if
test_result
is
None
:
...
...
software/erp5testnode/testsuite/deploy-test/software.cfg
View file @
7291d0fc
...
...
@@ -71,4 +71,4 @@ output = ${buildout:directory}/template.cfg
mode = 0644
[versions]
erp5.util = 0.4.
49
erp5.util = 0.4.
50
software/erp5testnode/testsuite/dummy/software.cfg
View file @
7291d0fc
...
...
@@ -5,6 +5,7 @@ extends =
parts =
instance-template
slapos-cookbook
[instance-template]
recipe = slapos.recipe.template
...
...
@@ -14,4 +15,4 @@ md5sum = efd3b712a2294207f265a9c45648d5cf
mode = 0644
[versions]
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
software/gitlab/software.cfg
View file @
7291d0fc
...
...
@@ -381,5 +381,5 @@ cns.recipe.symlink = 0.2.3
docutils = 0.12
plone.recipe.command = 1.1
rubygemsrecipe = 0.2.2+slapos001
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
z3c.recipe.scripts = 1.0.1
software/html5as/software.cfg
View file @
7291d0fc
...
...
@@ -72,7 +72,7 @@ async = 0.6.1
gitdb = 0.5.4
pycrypto = 2.6
rdiff-backup = 1.0.5+SlapOSPatched001
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
slapos.toolbox = 0.40.4
smmap = 0.8.2
plone.recipe.command = 1.1
...
...
software/html5ide/software.cfg
View file @
7291d0fc
...
...
@@ -48,4 +48,4 @@ md5sum = 8cde04bfd0c0e9bd56744b988275cfd8
PyRSS2Gen = 1.1
cns.recipe.symlink = 0.2.3
plone.recipe.command = 1.1
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
software/jstestnode/runTestSuite.in
View file @
7291d0fc
...
...
@@ -91,8 +91,8 @@ def main():
if args.target == 'firefox':
firefox_capabilities = webdriver.common.desired_capabilities.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '${firefox:location}/firefox-slapos'
browser = webdriver.Firefox(capabilities=firefox_capabilities,
firefox_binary='${firefox:location}/firefox-slapos',
executable_path='${firefox:location}/geckodriver')
elif args.target in ['iOS', 'Android']:
# parameters for mobile emulators have different names then parameters for
...
...
@@ -169,7 +169,7 @@ def main():
browser.quit()
is_browser_running = False
tool = taskdistribution.TaskDistribut
ionTool
(portal_url=args.master_url)
tool = taskdistribution.TaskDistribut
or
(portal_url=args.master_url)
test_result = tool.createTestResult(revision = revision,
test_name_list = test_line_dict.keys(),
node_title = args.test_node_title,
...
...
software/jstestnode/software.cfg
View file @
7291d0fc
...
...
@@ -107,11 +107,11 @@ mode = 0644
[template-runTestSuite]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/runTestSuite.in
md5sum = f
cf15b2a90340e0afe8f8b9921a4ffae
md5sum = f
f66d13f73982e8257eb5535cdb541c7
output = ${buildout:directory}/runTestSuite.in
mode = 0644
[versions]
erp5.util = 0.4.
49
slapos.recipe.template = 4.
1
selenium =
2.53.1
erp5.util = 0.4.
50
slapos.recipe.template = 4.
2
selenium =
3.8.0
software/jupyter/software.cfg
View file @
7291d0fc
...
...
@@ -85,7 +85,7 @@ pyzmq = 16.0.2
scikit-learn = 0.18.1
seaborn = 0.7.1
simplegeneric = 0.8.1
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
statsmodels = 0.8.0
terminado = 0.6
tornado = 4.4.2
...
...
software/kvm/software.cfg
View file @
7291d0fc
...
...
@@ -11,7 +11,7 @@ apache-libcloud = 1.1.0
collective.recipe.environment = 0.2.0
gitdb = 0.6.4
pycurl = 7.43.0
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
smmap = 0.9.0
# websockify = 0.8.0
...
...
software/nayuos/software.cfg
View file @
7291d0fc
...
...
@@ -17,7 +17,7 @@ parts +=
versions = versions
[versions]
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
[template-instance]
...
...
software/neoppod/instance-neo-input-schema.json
View file @
7291d0fc
...
...
@@ -70,6 +70,11 @@
"default"
:
1
,
"type"
:
"integer"
},
"data-deduplication"
:
{
"description"
:
"Set the --dedup option for storage nodes."
,
"default"
:
false
,
"type"
:
"boolean"
},
"disable-drop-partitions"
:
{
"description"
:
"Set the --disable-drop-partitions option for storage nodes."
,
"default"
:
false
,
...
...
software/neoppod/instance-neo-storage-mysql.cfg.in
View file @
7291d0fc
...
...
@@ -87,6 +87,7 @@ masters = ${publish:masters}
database-adapter = MySQL
wait-database = -1
engine = {{ slapparameter_dict.get('engine', '') }}
dedup = {{ dumps(bool(slapparameter_dict.get('data-deduplication'))) }}
disable-drop-partitions = {{ dumps(bool(slapparameter_dict.get('disable-drop-partitions'))) }}
{% for i in range(slapparameter_dict.get('storage-count', 1)) -%}
...
...
software/neoppod/software-common.cfg
View file @
7291d0fc
...
...
@@ -98,7 +98,7 @@ md5sum = 1fee10f02c2fa2a581e21878ca0fd704
[instance-neo-storage-mysql]
<= download-base-neo
md5sum =
67d623d631c2f99e33bcabc79fc9cccf
md5sum =
366e51c0dbd85e511a31e403b8704735
[template-neo-my-cnf]
<= download-base-neo
...
...
@@ -116,7 +116,7 @@ mysqlclient = 1.3.12
persistent = 4.2.3
pycrypto = 2.6.1
pycurl = 7.43.0
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
slapos.toolbox = 0.73
smmap2 = 2.0.1
transaction = 1.7.0
...
...
software/nginx-push-stream/software.cfg
View file @
7291d0fc
...
...
@@ -45,5 +45,5 @@ output = ${buildout:directory}/instance-nginx.cfg.in
mode = 0644
[versions]
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
slapos.toolbox = 0.73
software/powerdns/software.cfg
View file @
7291d0fc
...
...
@@ -65,4 +65,4 @@ mode = 0644
PyRSS2Gen = 1.1
cns.recipe.symlink = 0.2.3
plone.recipe.command = 1.1
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
software/re6stnet/software.cfg
View file @
7291d0fc
...
...
@@ -110,7 +110,7 @@ gitdb = 0.6.4
plone.recipe.command = 1.1
pycrypto = 2.6.1
pycurl = 7.43.0
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
slapos.toolbox = 0.73
smmap = 0.9.0
...
...
software/seleniumrunner/software.cfg
View file @
7291d0fc
...
...
@@ -47,4 +47,4 @@ mode = 0644
[versions]
plone.recipe.command = 1.1
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
software/slapos-in-partition/software.cfg
View file @
7291d0fc
...
...
@@ -11,4 +11,4 @@ extends = common.cfg
Pygments = 1.6
collective.recipe.environment = 0.2.0
collective.recipe.template = 1.10
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
software/slapos-master/buildout.hash.cfg
View file @
7291d0fc
...
...
@@ -15,7 +15,7 @@
# not need these here).
[template-erp5]
filename = instance-erp5.cfg.in
md5sum =
251c1fcec1817fe70ec0cf7da69ccf3a
md5sum =
4a77ee4a6367fee27552f8bfe9d87aab
[template-balancer]
filename = instance-balancer.cfg.in
...
...
software/slapos-master/instance-erp5.cfg.in
View file @
7291d0fc
...
...
@@ -143,7 +143,7 @@ return =
zope-address-list
hosts-dict
monitor-base-url
{% set bt5_default_list = 'erp5_full_text_myisam_catalog
erp5_configurator_standard erp5_configurator_maxma_demo erp5_configurator_run_my_doc
slapos_configurator' -%}
{% set bt5_default_list = 'erp5_full_text_myisam_catalog slapos_configurator' -%}
{% if has_jupyter -%}
{% set bt5_default_list = bt5_default_list + ' erp5_data_notebook' -%}
{% endif -%}
...
...
software/slapos-testing/software.cfg
View file @
7291d0fc
...
...
@@ -97,4 +97,4 @@ mode = 640
Pygments = 2.1.3
collective.recipe.template = 1.10
plone.recipe.command = 1.1
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
software/slaprunner/common.cfg
View file @
7291d0fc
...
...
@@ -152,6 +152,7 @@ eggs =
gunicorn==19.7.1
futures
${slapos-cookbook:eggs}
slapos.core # listed explicitly for scripts generation
[extra-eggs]
recipe = zc.recipe.egg
...
...
software/slaprunner/software.cfg
View file @
7291d0fc
...
...
@@ -15,7 +15,7 @@ gitdb = 0.6.4
gunicorn = 19.7.1
prettytable = 0.7.2
pycurl = 7.43.0
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
slapos.toolbox = 0.73
smmap = 0.9.0
...
...
software/test-slave-instance-deployment/software.cfg
View file @
7291d0fc
...
...
@@ -59,7 +59,7 @@ eggs = collective.recipe.template
collective.recipe.template = 1.11
plone.recipe.command = 1.1
slapos.recipe.build = 0.28
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
# Replicate slapos stack, but without shacache to not have to compile the entire world for a simple test.
[buildout]
...
...
software/unstable/condor/software.cfg
View file @
7291d0fc
...
...
@@ -51,7 +51,6 @@ MarkupSafe = 0.18
Werkzeug = 0.8.3
buildout-versions = 1.7
hexagonit.recipe.cmmi = 2.0
inotifyx = 0.2.0-1
lxml = 3.2.1
meld3 = 0.6.10
netaddr = 0.7.10
...
...
software/unstable/zimbra-kvm/software.cfg
View file @
7291d0fc
...
...
@@ -44,7 +44,6 @@ hexagonit.recipe.download = 1.6nxd002
# Required by:
# slapos.cookbook==0.73.1
inotifyx = 0.2.0
# Required by:
# slapos.cookbook==0.73.1
...
...
software/varnish/software.cfg
View file @
7291d0fc
...
...
@@ -62,4 +62,4 @@ md5sum = 0ea12a4ad2d2e3d406476e35b8d3e3fb
mode = 640
[versions]
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
software/wendelin-scalability/test-common.cfg
0 → 100644
View file @
7291d0fc
[buildout]
extends =
../wendelin/software.cfg
../../component/mariadb/mariarocks.cfg
[local-bt5-repository]
list += ${slapos.cookbook-repository:location}/software/wendelin-scalability
[patch-template]
recipe = slapos.recipe.build
location = ${buildout:directory}/${:_buildout_section_name_}.cfg.in
script =
with open(self.options['location'], 'w') as dst, \
open(self.options['base']) as src:
src = src.read()
i = src.index('[buildout]')
dst.write(src[:i] + self.options['extra'] + '\n' + src[i:])
software/wendelin-scalability/test-fluentd-1pb.cfg
View file @
7291d0fc
# ERP5: id-store-interval must be big enough to avoid conflicts (e.g. 1000)
[buildout]
extends = test-fluentd-common.cfg
...
...
@@ -21,7 +23,6 @@ recipe = slapos.recipe.build:download
[template-zope-patched]
<= template-fluentd
base = ${template-zope-base:target}
method = unpack
tags =
{%- if slapparameter_dict['family'] == 'fluentd' %}
{%- for i, zope in enumerate(publish_list) %}
...
...
@@ -32,7 +33,7 @@ tags =
[feeder]
feeder =
#
#
Same algorithm as ERP5Site_simulateFluentdIngestion
import os, struct
from random import lognormvariate
pack = struct.Struct('!d').pack
...
...
software/wendelin-scalability/test-fluentd-common.cfg
View file @
7291d0fc
[buildout]
extends =
../../component/gnupg/buildout.cfg
../fluentd/software.cfg
../wendelin/software.cfg
../../component/mariadb/mariarocks.cfg
[local-bt5-repository]
list += ${slapos.cookbook-repository:location}/software/wendelin-scalability
[patch-template]
recipe = slapos.recipe.build
location = ${buildout:directory}/${:_buildout_section_name_}.cfg.in
script =
with open(self.options['location'], 'w') as dst, \
open(self.options['base']) as src:
src = src.read()
i = src.index('[buildout]')
dst.write(src[:i] + self.options['extra'] + '\n' + src[i:])
test-common.cfg
[template-erp5]
recipe =
...
...
@@ -32,6 +17,7 @@ base = ${template-erp5-base:target}
[template-fluentd]
<= patch-template
method = unpack
extra =
{%- set tags = {} %}
${:tags}
...
...
software/wendelin-scalability/test-many-small-transactions.cfg
0 → 100644
View file @
7291d0fc
# ERP5: id-store-interval must be big enough to avoid conflicts (e.g. 1000)
# XXX: Because supervisord can't handle too many processes
# ("too many open files to spawn" errors), these SR
# should instantiate the source processes differently.
[buildout]
extends = test-fluentd-common.cfg
[template-erp5-patched]
extra =
[request-balancer]
config-inituser-login = {{ dumps(inituser_login) }}
config-inituser-password = $${publish-early:inituser-password}
[template-balancer]
recipe =
target = ${template-balancer-patched:location}
[template-balancer-base]
<= template-balancer
recipe = slapos.recipe.build:download
[template-balancer-patched]
<= template-fluentd
base = ${template-balancer-base:target}
tags =
{%- set port, backend_list = haproxy_dict['fluentd'] %}
{%- for i in range(100*len(backend_list)) %}
{%- do tags.__setitem__('wendelin_tag_' ~ i, ipv4 ~ ':' ~ port) %}
{%- endfor %}
[feeder]
feeder =
#
import collections, random, struct
pack = struct.Struct('!d').pack
data = collections.deque(
''.join(chr(int(random.gauss(0, .68)) % 256) for _ in xrange(2500))
# With a period greater than 64kiB (zlib dictionary size),
# we avoid extra compression due to repetition.
for _ in xrange(30))
interval = 60 # XXX: same as fluentd flush internal
time.sleep(interval * random.random())
while True:
emit('', pack(time.time()) + data[0])
data.rotate()
time.sleep(interval)
software/wendelin-scalability/test-much-deduplication-high-compressibility.cfg
View file @
7291d0fc
# NEO: data deduplication must be enabled
[buildout]
extends = test-fluentd-common.cfg
extends =
../../component/gnupg/buildout.cfg
test-fluentd-common.cfg
[template-erp5-patched]
extra =
...
...
software/wendelin-scalability/test-neo.cfg
0 → 100644
View file @
7291d0fc
# The 'start_ingest' command causes a zope to fill NEO as fast as possible,
# as if fluentd pushed data.
#
# Use sigma > 0 to have oids of variable size inside NEO.
# To know average compression ratio:
# x=test_scalability_fluentd/ExtensionTemplateItem/portal_components/extension.erp5.ScalabilityFluentd.py
# $x 10 1
# 0.434851958247
# 2155 - 65536 (99th percentile)
# $x 8.787 0
# 0.100036621094
# 6556
[buildout]
extends = test-common.cfg
parts += start_ingest
[start_ingest]
recipe = slapos.recipe.template:jinja2
rendered = ${buildout:bin-directory}/${:_buildout_section_name_}
mode = 0755
template =
inline:#!${buildout:executable}
import argparse, base64, httplib, sys
parser = argparse.ArgumentParser()
_ = parser.add_argument
_('--site-id', default='erp5')
_('hostport', metavar='host[:port]', help='Zope address')
_('password', help="'zope' user password")
_('reference', help='Data Stream reference')
_('mu', type=float)
_('sigma', type=float)
_('chunks_per_transaction', nargs='?', type=int, help='default: 128 (8 MiB)')
args = parser.parse_args()
qs = []
for k in 'reference', 'mu', 'sigma', 'chunks_per_transaction':
v = getattr(args, k)
if v is not None:
t = type(v)
qs.append('%s=%s' % (k if t is str else k + ':' + t.__name__, v))
c = httplib.HTTPConnection(args.hostport)
c.putrequest('GET', '/%s/ERP5Site_simulateFluentdIngestion?%s'
% (args.site_id, '&'.join(qs)))
c.putheader('Authorization',
'Basic ' + base64.b64encode('zope:'+args.password))
c.endheaders()
software/wendelin-scalability/test_scalability_fluentd/ExtensionTemplateItem/portal_components/extension.erp5.ScalabilityFluentd.py
0 → 100755
View file @
7291d0fc
#!/usr/bin/python
from
__future__
import
division
,
print_function
import
os
,
struct
from
random
import
lognormvariate
bigfile_chunk_size
=
65536
def
simulateFluentdIngestion
(
self
,
reference
,
mu
,
sigma
,
chunks_per_transaction
=
128
):
from
time
import
time
import
transaction
note
=
(
self
[
'portal_ingestion_policies'
][
'scalability_test_unpack'
].
getPath
()
+
'/ingest'
)
module
=
self
[
'data_stream_module'
]
try
:
data_stream
=
module
[
reference
]
except
KeyError
:
data_stream
=
module
.
newContent
(
reference
,
'Data Stream'
)
transaction
.
commit
()
pack
=
struct
.
Struct
(
'!d'
).
pack
data
=
os
.
urandom
(
bigfile_chunk_size
-
8
)
while
1
:
txn
=
transaction
.
begin
()
data_stream
.
appendData
(
''
.
join
(
(
pack
(
time
())
+
data
[:
int
(
lognormvariate
(
mu
,
sigma
))]
).
ljust
(
bigfile_chunk_size
,
'
\
0
'
)
for
_
in
xrange
(
chunks_per_transaction
)))
txn
.
note
(
note
)
txn
.
commit
()
if
__name__
==
'__main__'
:
import
sys
mu
,
sigma
=
map
(
float
,
sys
.
argv
[
1
:
3
])
if
sigma
:
try
:
n
=
int
(
sys
.
argv
[
3
])
except
IndexError
:
n
=
1000000
else
:
n
=
1
x
=
sorted
(
min
(
int
(
lognormvariate
(
mu
,
sigma
)),
bigfile_chunk_size
-
8
)
for
_
in
xrange
(
n
))
print
((
8
*
n
+
sum
(
x
))
/
(
bigfile_chunk_size
*
n
))
if
n
==
1
:
print
(
x
[
0
]
+
8
)
else
:
n
//=
100
if
n
:
print
(
8
+
x
[
n
],
'-'
,
8
+
x
[
-
n
-
1
],
'(99th percentile)'
)
else
:
print
(
8
+
x
[
0
],
'-'
,
8
+
x
[
-
1
])
software/wendelin-scalability/test_scalability_fluentd/ExtensionTemplateItem/portal_components/extension.erp5.ScalabilityFluentd.xml
0 → 100644
View file @
7291d0fc
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Extension Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_recorded_property_dict
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
ScalabilityFluentd
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
extension.erp5.ScalabilityFluentd
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Extension Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple>
<string>
W: 8, 46: Redefining name \'mu\' from outer scope (line 35) (redefined-outer-name)
</string>
<string>
W: 8, 50: Redefining name \'sigma\' from outer scope (line 35) (redefined-outer-name)
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAQ=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"4"
aka=
"AAAAAAAAAAQ="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.patches.WorkflowTool"
/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
software/wendelin-scalability/test_scalability_fluentd/PathTemplateItem/portal_skins/custom/ERP5Site_simulateFluentdIngestion.xml
0 → 100644
View file @
7291d0fc
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ExternalMethod"
module=
"Products.ExternalMethod.ExternalMethod"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_function
</string>
</key>
<value>
<string>
simulateFluentdIngestion
</string>
</value>
</item>
<item>
<key>
<string>
_module
</string>
</key>
<value>
<string>
ScalabilityFluentd
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
ERP5Site_simulateFluentdIngestion
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
software/wendelin-scalability/test_scalability_fluentd/bt/template_extension_id_list
0 → 100644
View file @
7291d0fc
extension.erp5.ScalabilityFluentd
\ No newline at end of file
software/wendelin-scalability/test_scalability_fluentd/bt/template_path_list
View file @
7291d0fc
portal_ingestion_policies/scalability_test_*
portal_skins/custom/DataStreamModule_getTotalSize
portal_skins/custom/ERP5Site_handleRawDataFluentdIngestion
portal_skins/custom/ERP5Site_simulateFluentdIngestion
\ No newline at end of file
stack/caddy/Caddyfile.in
View file @
7291d0fc
...
...
@@ -10,6 +10,8 @@ tls {{ custom_cert_dict['cert-file'] }} {{ custom_cert_dict['key-file'] }} {
log {{caddy_configuration_dict['access_log']}}
errors {{caddy_configuration_dict['error_log']}}
root {{ directory_dict['public_html'] }}
{% if parameter_dict['enable-basic-auth'] == 'true' -%}
...
...
@@ -18,6 +20,8 @@ basicauth / {{ parameter_dict['username'] }} {{parameter_dict['password']}}
}
bind {{caddy_configuration_dict['ipv6']}}
{%- endif %}
[{{caddy_configuration_dict['ipv6']}}]:{{parameter_dict['port-ipv6']}} {
...
...
@@ -30,22 +34,30 @@ basicauth / {{ parameter_dict['username'] }} {{parameter_dict['password']}}
log {{caddy_configuration_dict['access_log']}}
errors {{caddy_configuration_dict['error_log']}}
root {{ directory_dict['public_html'] }}
{% if parameter_dict['enable-basic-auth'] == 'true' -%}
basicauth / {{ parameter_dict['username'] }} {{parameter_dict['password']}}
{%- endif %}
bind {{caddy_configuration_dict['ipv6']}}
}
[{{caddy_configuration_dict['local_ip']}}]:{{parameter_dict['port-ipv4']}} {
log {{caddy_configuration_dict['access_log']}}
errors {{caddy_configuration_dict['error_log']}}
root {{ directory_dict['public_html'] }}
{% if parameter_dict['enable-basic-auth'] == 'true' -%}
basicauth / {{ parameter_dict['username'] }} {{parameter_dict['password']}}
{%- endif %}
bind {{caddy_configuration_dict['local_ip']}}
}
\ No newline at end of file
stack/caddy/buildout.cfg
View file @
7291d0fc
...
...
@@ -27,7 +27,7 @@ mode = 0644
[template-caddyfile]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/Caddyfile.in
#md5sum = bb3b314ebeb58e9875d547a053a9f268
md5sum = 88c4c33e374ea3f61cdd36b2816d24ba
filename = Caddyfile.in
location = ${buildout:parts-directory}/${:_buildout_section_name_}
mode = 0644
...
...
stack/caucase/buildout.cfg
View file @
7291d0fc
...
...
@@ -94,7 +94,7 @@ caucase = 0.1.4
futures = 3.1.1
gitdb2 = 2.0.2
gunicorn = 19.7.1
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
slapos.toolbox = 0.73
smmap2 = 2.0.3
...
...
stack/cloudooo.cfg
View file @
7291d0fc
...
...
@@ -89,7 +89,7 @@ PasteScript = 2.0.2
WSGIUtils = 0.7
python-magic = 0.4.6
rdiff-backup = 1.0.5+SlapOSPatched001
slapos.recipe.template = 4.
1
slapos.recipe.template = 4.
2
# Required by:
# PasteScript==2.0
...
...
stack/erp5/buildout.cfg
View file @
7291d0fc
...
...
@@ -736,7 +736,7 @@ uuid = 1.30
validictory = 1.1.0
xfw = 0.10
xupdate-processor = 0.4
selenium =
2.53.1
selenium =
3.8.0
# Required by:
# Products.CMFCore==2.2.10
...
...
stack/erp5/buildout.hash.cfg
View file @
7291d0fc
...
...
@@ -19,7 +19,7 @@ md5sum = c1f1083bf6c911a0e65dcb841fba327d
[mariadb-slow-query-report-script]
filename = mysql-querydigest.sh.in
md5sum =
cfe6ab8ae54a521ecb269e9d9762cbeb
md5sum =
0c0d98a68230cd0ad36046bb25b35f4a
[mariadb-start-clone-from-backup]
filename = instance-mariadb-start-clone-from-backup.sh.in
...
...
@@ -27,7 +27,7 @@ md5sum = 1af531c51f575a1d1362f2ca2d61620d
[template-mariadb]
filename = instance-mariadb.cfg.in
md5sum =
8ea5033142f450a2e90431817771cb44
md5sum =
da7c36ecb490b67360d2afda94b41bff
[template-kumofs]
filename = instance-kumofs.cfg.in
...
...
@@ -79,7 +79,7 @@ md5sum = d41d8cd98f00b204e9800998ecf8427e
[template-erp5]
filename = instance-erp5.cfg.in
md5sum =
2465af81147af322056cee9f6c7de14f
md5sum =
02ed5d9b74c70789004d01dd2ecde7b1
[template-zeo]
filename = instance-zeo.cfg.in
...
...
@@ -91,7 +91,7 @@ md5sum = fd7e8c507cef1950e6c0347ce2a01021
[template-balancer]
filename = instance-balancer.cfg.in
md5sum =
f64c568f1365eb1164f12f48fede9a9
9
md5sum =
a71ad387eab681b9020e271cba2c7a7
9
[template-haproxy-cfg]
filename = haproxy.cfg.in
...
...
stack/erp5/instance-balancer.cfg.in
View file @
7291d0fc
...
...
@@ -287,7 +287,7 @@ apachedex = ${monitor-directory:private}/apachedex
[{{ section('monitor-generate-apachedex-report') }}]
recipe = slapos.cookbook:wrapper
wrapper-path = ${monitor-directory:reports}/${:command}
command-line = "{{ parameter_dict['run-apachedex-location'] }}" "{{ parameter_dict['apachedex-location'] }}" "${directory:apachedex}" ${monitor-publish-parameters:monitor-base-url}/private/apachedex --apache-log-list "${apachedex-parameters:apache-log-list}" --config "${apachedex-parameters:configuration}"
command-line = "{{ parameter_dict['run-apachedex-location'] }}" "{{ parameter_dict['apachedex-location'] }}" "${directory:apachedex}" ${monitor-publish-parameters:monitor-base-url}/private/apachedex --apache-log-list "${apachedex-parameters:apache-log-list}" --config
uration
"${apachedex-parameters:configuration}"
command = apachedex_every_23_hour
[apachedex-parameters]
...
...
stack/erp5/instance-erp5.cfg.in
View file @
7291d0fc
...
...
@@ -284,7 +284,7 @@ config-backend-path-dict = {{ dumps(zope_backend_path_dict) }}
config-ssl-authentication-dict = {{ dumps(ssl_authentication_dict) }}
config-apachedex-promise-threshold = {{ dumps(monitor_dict.get('apachedex-promise-threshold', 70)) }}
config-apachedex-configuration = {{ dumps(monitor_dict.get('apachedex-configuration',
'--erp5-base
"/erp5(/|$|/\?)" --skip-user-agent Zabbix
--error-detail --js-embed --quiet')) }}
'--erp5-base
+erp5 .*/VirtualHostRoot/erp5(/|\\?|$) --base +other / --skip-user-agent Zabbix
--error-detail --js-embed --quiet')) }}
[request-frontend-base]
{% if has_frontend -%}
...
...
stack/erp5/instance-mariadb.cfg.in
View file @
7291d0fc
...
...
@@ -107,7 +107,7 @@ time = {{ dumps(backup_periodicity) }}
# can be fully restored.
# master-data: use value "2" as we are not in a replication case
#}
command = "${binary-wrap-mysqldump:wrapper-path}" -u root --all-databases --single-transaction {% if incremental_backup_retention_days > -1 %}--flush-logs --master-data=2 {% endif %}| {{ parameter_dict['gzip-location'] }}/bin/gzip > "${directory:mariadb-backup-full}/$({{ parameter_dict['coreutils-location'] }}/bin/date "+%Y%m%d%H%M%S").sql.gz"
command = "${binary-wrap-mysqldump:wrapper-path}" -u root --all-databases --
flush-privileges --
single-transaction {% if incremental_backup_retention_days > -1 %}--flush-logs --master-data=2 {% endif %}| {{ parameter_dict['gzip-location'] }}/bin/gzip > "${directory:mariadb-backup-full}/$({{ parameter_dict['coreutils-location'] }}/bin/date "+%Y%m%d%H%M%S").sql.gz"
{# KEEP GLOB PATTERN IN SYNC with generated filenames above
# YYYYmmddHHMMSS -#}
file-glob = ??????????????.sql.gz
...
...
@@ -252,7 +252,7 @@ mariadb-ssl = ${:etc}/mariadb-ssl
var = ${buildout:directory}/var
log = ${:var}/log
run = ${:var}/run
slowquery =
${monitor-directory:private}/slowquerydex
slowquery =
${monitor-directory:private}/slowquery_digest
[{{ section('resiliency-exclude-file') }}]
# Generate rdiff exclude file in case of resiliency
...
...
stack/erp5/mysql-querydigest.sh.in
View file @
7291d0fc
...
...
@@ -7,19 +7,20 @@ PT_QUERY_EXEC='{{pt_query_exec}}'
if [ ! -d "$OUTPUT_FOLDER" ]; then
echo "ERROR: output_folder don't exists"
exit
0
exit
1
fi
OUTPUT_FILE=${OUTPUT_FOLDER}/slowquery_digest.txt
TODAY=`date +%Y%m%d`
dashed_today=$(date +%Y-%m-%d)
today=$(date -d "$dashed_today" +%Y%m%d)
SLOW_LOG=$SLOW_QUERY_PATH-$TODAY
SLOW_LOG="$SLOW_QUERY_PATH-$today"
OUTPUT_FILE="$OUTPUT_FOLDER/slowquery_digest.txt-$dashed_today"
if [ ! -f "$SLOW_LOG" ]; then
echo "ERROR: cannot read mysql slow query log file $SLOW_LOG. Exiting."
exit 1
fi
$PT_QUERY_EXEC $SLOW_LOG > $OUTPUT_FILE
echo "ok"
"$PT_QUERY_EXEC" "$SLOW_LOG" > "$OUTPUT_FILE" && \
echo "Report generated successfully." || \
echo "Report failed with code $?"
stack/monitor/buildout.cfg
View file @
7291d0fc
...
...
@@ -132,4 +132,5 @@ PyRSS2Gen = 1.1
cns.recipe.symlink = 0.2.3
pycurl = 7.43.0
slapos.toolbox = 0.73
pyasn1 = 0.3.7
stack/slapos.cfg
View file @
7291d0fc
...
...
@@ -53,6 +53,9 @@ allow-hosts +=
www.dabeaz.com
www.owlfish.com
# Use an https index
index = https://pypi.python.org/simple/
# XXX: Workaround of SlapOS limitation
# Unzippig of eggs is required, as SlapOS do not yet provide nicely working
# development / fast switching environment for whole software
...
...
@@ -88,6 +91,7 @@ eggs =
slapos.libnetworkcache
[versions]
setuptools = 33.1.1
# Use SlapOS patched zc.buildout
zc.buildout = 2.5.2+slapos011
# Use SlapOS patched zc.recipe.egg (zc.recipe.egg 2.x is for Buildout 2)
...
...
@@ -108,7 +112,7 @@ collective.recipe.template = 2.0
cryptography = 2.1.1
decorator = 4.0.11
idna = 2.2
inotify
x = 0.2.2
inotify
-simple = 1.1.1
itsdangerous = 0.24
lock-file = 2.0
lxml = 3.7.3
...
...
@@ -122,7 +126,6 @@ pyOpenSSL = 17.2.0
pyparsing = 2.2.0
pytz = 2016.10
requests = 2.13.0
setuptools = 33.1.1
six = 1.10.0
slapos.cookbook = 1.0.53
slapos.core = 1.4.3
...
...
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