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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Carlos Ramos Carreño
slapos
Commits
d64893e5
Commit
d64893e5
authored
Feb 17, 2022
by
Łukasz Nowak
Browse files
Options
Browse Files
Download
Plain Diff
Update Release Candidate
parents
49cf6c66
3939aebb
Changes
55
Show whitespace changes
Inline
Side-by-side
Showing
55 changed files
with
410 additions
and
231 deletions
+410
-231
component/ZODB/buildout.cfg
component/ZODB/buildout.cfg
+1
-1
component/caddy/buildout.cfg
component/caddy/buildout.cfg
+1
-1
component/dcron/buildout.cfg
component/dcron/buildout.cfg
+0
-2
component/egg-patch/Acquisition/aq_dynamic-2.13.12.patch
component/egg-patch/Acquisition/aq_dynamic-2.13.12.patch
+0
-0
component/inkscape/buildout.cfg
component/inkscape/buildout.cfg
+3
-1
component/lunzip/buildout.cfg
component/lunzip/buildout.cfg
+2
-2
component/randomsleep/buildout.cfg
component/randomsleep/buildout.cfg
+4
-4
component/sqlite3/buildout.cfg
component/sqlite3/buildout.cfg
+2
-2
component/wendelin.core/buildout.cfg
component/wendelin.core/buildout.cfg
+1
-1
slapos/recipe/check_parameter/template/check_parameter.py.in
slapos/recipe/check_parameter/template/check_parameter.py.in
+3
-2
slapos/recipe/generic_mysql/mysql.py
slapos/recipe/generic_mysql/mysql.py
+1
-1
slapos/recipe/zeo/__init__.py
slapos/recipe/zeo/__init__.py
+1
-1
software/beremiz-runtime/buildout.hash.cfg
software/beremiz-runtime/buildout.hash.cfg
+3
-0
software/beremiz-runtime/instance.cfg.in
software/beremiz-runtime/instance.cfg.in
+74
-0
software/beremiz-runtime/software.cfg
software/beremiz-runtime/software.cfg
+98
-0
software/caddy-frontend/buildout.hash.cfg
software/caddy-frontend/buildout.hash.cfg
+1
-1
software/caddy-frontend/templates/trafficserver/records.config.jinja2
...dy-frontend/templates/trafficserver/records.config.jinja2
+2
-0
software/caddy-frontend/test/test.py
software/caddy-frontend/test/test.py
+28
-102
software/erp5/instance-mariadb-schema.json
software/erp5/instance-mariadb-schema.json
+10
-0
software/galene/software.cfg
software/galene/software.cfg
+1
-1
software/kvm/buildout.hash.cfg
software/kvm/buildout.hash.cfg
+1
-1
software/kvm/instance-kvm.cfg.jinja2
software/kvm/instance-kvm.cfg.jinja2
+1
-0
software/kvm/test/test.py
software/kvm/test/test.py
+6
-0
software/neoppod/buildout.hash.cfg
software/neoppod/buildout.hash.cfg
+2
-2
software/neoppod/instance.cfg.in
software/neoppod/instance.cfg.in
+1
-1
software/neoppod/root-common.cfg.in
software/neoppod/root-common.cfg.in
+3
-3
software/ors-amarisoft/buildout.hash.cfg
software/ors-amarisoft/buildout.hash.cfg
+5
-5
software/ors-amarisoft/instance-enb-epc.jinja2.cfg
software/ors-amarisoft/instance-enb-epc.jinja2.cfg
+12
-0
software/ors-amarisoft/instance-enb.jinja2.cfg
software/ors-amarisoft/instance-enb.jinja2.cfg
+12
-0
software/ors-amarisoft/instance-epc.jinja2.cfg
software/ors-amarisoft/instance-epc.jinja2.cfg
+12
-0
software/ors-amarisoft/instance-gnb-epc.jinja2.cfg
software/ors-amarisoft/instance-gnb-epc.jinja2.cfg
+12
-0
software/ors-amarisoft/instance-gnb.jinja2.cfg
software/ors-amarisoft/instance-gnb.jinja2.cfg
+12
-0
software/repman/buildout.hash.cfg
software/repman/buildout.hash.cfg
+2
-2
software/repman/instance-mariadb.cfg.jinja2.in
software/repman/instance-mariadb.cfg.jinja2.in
+3
-9
software/repman/instance.cfg.in
software/repman/instance.cfg.in
+0
-1
software/theia/buildout.hash.cfg
software/theia/buildout.hash.cfg
+1
-1
software/theia/instance-import.cfg.jinja.in
software/theia/instance-import.cfg.jinja.in
+8
-9
stack/erp5/buildout.cfg
stack/erp5/buildout.cfg
+1
-1
stack/erp5/buildout.hash.cfg
stack/erp5/buildout.hash.cfg
+12
-12
stack/erp5/haproxy.cfg.in
stack/erp5/haproxy.cfg.in
+3
-3
stack/erp5/instance-balancer.cfg.in
stack/erp5/instance-balancer.cfg.in
+5
-5
stack/erp5/instance-erp5.cfg.in
stack/erp5/instance-erp5.cfg.in
+8
-8
stack/erp5/instance-mariadb.cfg.in
stack/erp5/instance-mariadb.cfg.in
+5
-8
stack/erp5/instance-zeo.cfg.in
stack/erp5/instance-zeo.cfg.in
+6
-6
stack/erp5/instance-zodb-base.cfg.in
stack/erp5/instance-zodb-base.cfg.in
+1
-1
stack/erp5/instance-zope.cfg.in
stack/erp5/instance-zope.cfg.in
+18
-12
stack/erp5/instance.cfg.in
stack/erp5/instance.cfg.in
+4
-2
stack/erp5/my.cnf.in
stack/erp5/my.cnf.in
+2
-3
stack/erp5/run-zelenium-test.py.in
stack/erp5/run-zelenium-test.py.in
+2
-2
stack/erp5/site.zcml
stack/erp5/site.zcml
+1
-1
stack/erp5/zope.conf.in
stack/erp5/zope.conf.in
+3
-3
stack/monitor/buildout.cfg
stack/monitor/buildout.cfg
+2
-0
stack/monitor/buildout.hash.cfg
stack/monitor/buildout.hash.cfg
+1
-1
stack/monitor/instance-monitor.cfg.jinja2.in
stack/monitor/instance-monitor.cfg.jinja2.in
+3
-3
stack/slapos.cfg
stack/slapos.cfg
+4
-4
No files found.
component/ZODB/buildout.cfg
View file @
d64893e5
...
@@ -96,7 +96,7 @@ setup-eggs = ${python-cffi:egg}
...
@@ -96,7 +96,7 @@ setup-eggs = ${python-cffi:egg}
[versions]
[versions]
BTrees = 4.5.1
BTrees = 4.5.1
persistent = 4.6.4
persistent = 4.6.4
zodbpickle =
1.0.4
zodbpickle =
2.0.0
# Provide ZODB3 for those eggs that still care about ZODB3 compatibility -
# Provide ZODB3 for those eggs that still care about ZODB3 compatibility -
# for example wendelin.core. ZODB3 3.11 is just a dependency egg on _latest_
# for example wendelin.core. ZODB3 3.11 is just a dependency egg on _latest_
...
...
component/caddy/buildout.cfg
View file @
d64893e5
...
@@ -10,7 +10,7 @@ parts =
...
@@ -10,7 +10,7 @@ parts =
<= go-git-package
<= go-git-package
go.importpath = github.com/caddyserver/caddy
go.importpath = github.com/caddyserver/caddy
repository = https://lab.nexedi.com/nexedi/caddy.git
repository = https://lab.nexedi.com/nexedi/caddy.git
revision = nxd-v1.0.3-1-
g2c11cedc
revision = nxd-v1.0.3-1-
03fba31bf
[gowork]
[gowork]
golang = ${golang1.17:location}
golang = ${golang1.17:location}
...
...
component/dcron/buildout.cfg
View file @
d64893e5
...
@@ -2,7 +2,6 @@
...
@@ -2,7 +2,6 @@
extends =
extends =
../coreutils/buildout.cfg
../coreutils/buildout.cfg
../patch/buildout.cfg
../patch/buildout.cfg
../randomsleep/buildout.cfg
parts = dcron-output
parts = dcron-output
...
@@ -20,7 +19,6 @@ make-options =
...
@@ -20,7 +19,6 @@ make-options =
PREFIX=${buildout:parts-directory}/${:_buildout_section_name_}
PREFIX=${buildout:parts-directory}/${:_buildout_section_name_}
post-install =
post-install =
chmod u-s %(location)s/bin/crontab
chmod u-s %(location)s/bin/crontab
dummy = ${randomsleep:recipe}
[dcron-output]
[dcron-output]
# Shared binary location to ease migration
# Shared binary location to ease migration
...
...
component/egg-patch/Acquisition/aq_dynamic.patch
→
component/egg-patch/Acquisition/aq_dynamic
-2.13.12
.patch
View file @
d64893e5
File moved
component/inkscape/buildout.cfg
View file @
d64893e5
...
@@ -23,6 +23,8 @@ extends =
...
@@ -23,6 +23,8 @@ extends =
../popt/buildout.cfg
../popt/buildout.cfg
../xorg/buildout.cfg
../xorg/buildout.cfg
../zlib/buildout.cfg
../zlib/buildout.cfg
# Inkscape < 1.1 only supports python2
../python-2.7/buildout.cfg
[gsl]
[gsl]
recipe = slapos.recipe.cmmi
recipe = slapos.recipe.cmmi
...
@@ -52,7 +54,7 @@ configure-options =
...
@@ -52,7 +54,7 @@ configure-options =
-DWITH_LIBVISIO=OFF
-DWITH_LIBVISIO=OFF
-DWITH_LIBWPG=OFF
-DWITH_LIBWPG=OFF
environment =
environment =
PATH=${cmake:location}/bin:${freetype:location}/bin:${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${libxml2:location}/bin:${pango:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PATH=${cmake:location}/bin:${freetype:location}/bin:${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${intltool:location}/bin:${libxml2:location}/bin:${pango:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:
${python2.7:location}/bin:
%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
PKG_CONFIG_PATH=${:pkg_config_depends}
CMAKE_INCLUDE_PATH=${boost-lib:location}/include:${freetype:location}/include:${garbage-collector:location}/include:${libjpeg:location}/include:${lcms2:location}/include:${libpng:location}/include:${zlib:location}/include
CMAKE_INCLUDE_PATH=${boost-lib:location}/include:${freetype:location}/include:${garbage-collector:location}/include:${libjpeg:location}/include:${lcms2:location}/include:${libpng:location}/include:${zlib:location}/include
CMAKE_LIBRARY_PATH=${boost-lib:location}/lib:${freetype:location}/lib:${garbage-collector:location}/lib:${lcms2:location}/lib:${libjpeg:location}/lib:${libpng:location}/lib:${zlib:location}/lib
CMAKE_LIBRARY_PATH=${boost-lib:location}/lib:${freetype:location}/lib:${garbage-collector:location}/lib:${lcms2:location}/lib:${libjpeg:location}/lib:${libpng:location}/lib:${zlib:location}/lib
...
...
component/lunzip/buildout.cfg
View file @
d64893e5
...
@@ -5,7 +5,7 @@ parts =
...
@@ -5,7 +5,7 @@ parts =
[lunzip]
[lunzip]
recipe = slapos.recipe.cmmi
recipe = slapos.recipe.cmmi
shared = true
shared = true
url = http://download
.savannah.gnu.org/releases-redirect/lzip/lunzip/lunzip-1.12
.tar.gz
url = http://download
-mirror.savannah.gnu.org/releases/lzip/lunzip/lunzip-1.13
.tar.gz
md5sum =
09caf2475c58aa40e94b599a4f7a2d13
md5sum =
4bc15e65fef99db64e27f4cd369ae02e
configure-options =
configure-options =
--disable-static
--disable-static
component/randomsleep/buildout.cfg
View file @
d64893e5
...
@@ -4,10 +4,10 @@ extends =
...
@@ -4,10 +4,10 @@ extends =
../bash/buildout.cfg
../bash/buildout.cfg
[randomsleep]
[randomsleep]
recipe = slapos.recipe.template
:jinja2
recipe = slapos.recipe.template
rendered
= ${buildout:bin-directory}/${:_buildout_section_name_}
output
= ${buildout:bin-directory}/${:_buildout_section_name_}
templat
e =
inlin
e =
inline:
#!${bash:location}/bin/bash
#!${bash:location}/bin/bash
[ $# = 1 ] || {
[ $# = 1 ] || {
echo "usage: ${:_buildout_section_name_} maxseconds"
echo "usage: ${:_buildout_section_name_} maxseconds"
exit 1
exit 1
...
...
component/sqlite3/buildout.cfg
View file @
d64893e5
...
@@ -8,8 +8,8 @@ parts =
...
@@ -8,8 +8,8 @@ parts =
[sqlite3]
[sqlite3]
recipe = slapos.recipe.cmmi
recipe = slapos.recipe.cmmi
shared = true
shared = true
url = https://sqlite.org/202
1/sqlite-autoconf-33600
00.tar.gz
url = https://sqlite.org/202
2/sqlite-autoconf-33702
00.tar.gz
md5sum =
f5752052fc5b8e1b539af86a3671eac
7
md5sum =
683cc5312ee74e71079c14d24b7a6d2
7
configure-options =
configure-options =
--disable-static
--disable-static
--enable-readline
--enable-readline
...
...
component/wendelin.core/buildout.cfg
View file @
d64893e5
...
@@ -50,7 +50,7 @@ CGO_LDFLAGS += -Wl,-rpath=${zlib:location}/lib
...
@@ -50,7 +50,7 @@ CGO_LDFLAGS += -Wl,-rpath=${zlib:location}/lib
recipe = slapos.recipe.build:gitclone
recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/nexedi/wendelin.core.git
repository = https://lab.nexedi.com/nexedi/wendelin.core.git
branch = master
branch = master
revision = wendelin.core-2.0.alpha2-
1-gad6305c0
revision = wendelin.core-2.0.alpha2-
2-g3d0f134c
# dir is pretty name as top-level recipe
# dir is pretty name as top-level recipe
location = ${buildout:parts-directory}/wendelin.core
location = ${buildout:parts-directory}/wendelin.core
git-executable = ${git:location}/bin/git
git-executable = ${git:location}/bin/git
slapos/recipe/check_parameter/template/check_parameter.py.in
View file @
d64893e5
#!%(python_path)s
#!%(python_path)s
# BEWARE: This file is operated by slapos node
# BEWARE: This file is operated by slapos node
# BEWARE: It will be overwritten automatically
# BEWARE: It will be overwritten automatically
from __future__ import print_function
import socket
import socket
import sys
import sys
...
@@ -9,9 +10,9 @@ expected = "%(expected-value)s"
...
@@ -9,9 +10,9 @@ expected = "%(expected-value)s"
not_expected = "%(expected-not-value)s"
not_expected = "%(expected-not-value)s"
if expected != "" and value != expected:
if expected != "" and value != expected:
print
"FAIL: %%s != %%s" %% (value, expected
)
print
("FAIL: %%s != %%s" %% (value, expected)
)
sys.exit(127)
sys.exit(127)
if not_expected != "" and value == not_expected:
if not_expected != "" and value == not_expected:
print
"FAIL: %%s == %%s" %% (value, not_expected
)
print
("FAIL: %%s == %%s" %% (value, not_expected)
)
sys.exit(127)
sys.exit(127)
slapos/recipe/generic_mysql/mysql.py
View file @
d64893e5
...
@@ -8,7 +8,7 @@ import pytz
...
@@ -8,7 +8,7 @@ import pytz
def
updateMysql
(
mysql_upgrade_binary
,
mysql_binary
,
mysql_script_file
):
def
updateMysql
(
mysql_upgrade_binary
,
mysql_binary
,
mysql_script_file
):
sleep
=
0
sleep
=
0
with
open
(
mysql_script_file
)
as
script_file
:
with
open
(
mysql_script_file
,
'rb'
)
as
script_file
:
mysql_script
=
script_file
.
read
()
mysql_script
=
script_file
.
read
()
mysql_list
=
mysql_binary
,
'-B'
mysql_list
=
mysql_binary
,
'-B'
mysql_tzinfo_to_sql_list
=
(
mysql_tzinfo_to_sql_list
=
(
...
...
slapos/recipe/zeo/__init__.py
View file @
d64893e5
...
@@ -57,7 +57,7 @@ class Recipe(GenericBaseRecipe):
...
@@ -57,7 +57,7 @@ class Recipe(GenericBaseRecipe):
# Prepare all filestorages
# Prepare all filestorages
filestorage_snippet
=
""
filestorage_snippet
=
""
storage
=
self
.
options
[
'storage'
]
storage
=
self
.
options
[
'storage'
]
if
isinstance
(
storage
,
basestring
):
if
isinstance
(
storage
,
str
):
for
storage_definition
in
storage
.
splitlines
():
for
storage_definition
in
storage
.
splitlines
():
storage_definition
=
storage_definition
.
strip
()
storage_definition
=
storage_definition
.
strip
()
if
not
storage_definition
:
if
not
storage_definition
:
...
...
software/beremiz-runtime/buildout.hash.cfg
0 → 100644
View file @
d64893e5
[instance-profile]
filename = instance.cfg.in
md5sum = ed202dc7d69f517e325f01dc3ac4fe32
software/beremiz-runtime/instance.cfg.in
0 → 100644
View file @
d64893e5
#############################
#
# Deploy beremiz' runtime instance
#
#############################
[buildout]
parts =
directory
publish-connection-parameter
download-plc
beremiz-runtime
# beremiz-runtime-promise
eggs-directory = {{ buildout['eggs-directory'] }}
develop-eggs-directory = {{ buildout['develop-eggs-directory'] }}
offline = true
extends = {{ template_monitor }}
[download-plc]
recipe = plone.recipe.command
update-command = ${:command}
url = ${instance-parameter:configuration.runtime_plc_url}
md5sum = ${instance-parameter:configuration.runtime_plc_md5sum}
# XXX: do check md5sum !
command =
wget ${:url} -O plc.tgz
tar zxvf plc.tgz
[instance-parameter]
recipe = slapos.cookbook:slapconfiguration
computer = ${slap-connection:computer-id}
partition = ${slap-connection:partition-id}
url = ${slap-connection:server-url}
key = ${slap-connection:key-file}
cert = ${slap-connection:cert-file}
configuration.runtime_plc_url =
configuration.runtime_plc_md5sum =
# XXX: we can get rid of plc_name in future
configuration.runtime_plc_name =
configuration.autostart = 1
configuration.interface = 0.0.0.0
# XXX: randomly generated one on slap's interface?
configuration.port = 61248
configuration.plc_runtime_path = ${directory:home}/${:configuration.runtime_plc_name}
# Create all needed directories, depending on your needs
[directory]
recipe = slapos.cookbook:mkdirectory
home = ${buildout:directory}
etc = ${:home}/etc
var = ${:home}/var
script = ${:etc}/run/
service = ${:etc}/service
log = ${:var}/log
[beremiz-runtime]
logfile = ${directory:log}/beremiz-runtime.log
recipe = slapos.cookbook:wrapper
command-line =
{{ buildout['bin-directory'] }}/pythonwitheggs {{ buildout['directory'] }}/src/beremiz/Beremiz_service.py -a ${instance-parameter:configuration.autostart} -p ${instance-parameter:configuration.port} -i ${instance-parameter:configuration.interface} -x 1 ${directory:home}/${instance-parameter:configuration.runtime_plc_name}
wrapper-path = ${directory:service}/beremiz-runtime
[beremiz-runtime-promise]
<= monitor-promise-base
module = check_port_listening
name = beremiz-runtime.py
config-hostname= ${instance-parameter:configuration.interface}
config-port = ${instance-parameter:configuration.port}
[publish-connection-parameter]
recipe = slapos.cookbook:publish
port = ${instance-parameter:configuration.port}
interface = ${instance-parameter:configuration.interface}
software/beremiz-runtime/software.cfg
0 → 100644
View file @
d64893e5
# the default SlapOs profile which setup a modbus server instance usually over OSIE's coupler
[buildout]
allow-picked-versions = true
extensions = mr.developer
auto-checkout = beremiz
extends =
buildout.hash.cfg
https://lab.nexedi.com/nexedi/slapos/raw/master/stack/monitor/buildout.cfg
https://lab.nexedi.com/nexedi/slapos/raw/master/stack/slapos.cfg
https://lab.nexedi.com/nexedi/slapos/raw/master/component/python3/buildout.cfg
parts =
python-interpreter
slapos-cookbook
instance-profile
# fix for pypi: https://mail.python.org/pipermail/distutils-sig/2017-October/031712.html
index = https://pypi.python.org/simple/
[sources]
beremiz = git https://github.com/beremiz/beremiz.git branch=default
[beremiz]
recipe = zc.recipe.egg:develop
egg = beremiz
setup = ${buildout:directory}/src/beremiz
[Twisted]
recipe = zc.recipe.egg:custom
egg = Twisted
setup-eggs =
six
pathlib
[python-interpreter]
recipe = zc.recipe.egg
interpreter = pythonwitheggs
eggs = click
prompt_toolkit
pygments
bitarray
future
six
Pyro
zeroconf-py2compat
pathlib
Nevow
msgpack
autobahn
${beremiz:egg}
${Twisted:egg}
[instance-profile]
recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:filename}
mode = 0644
rendered = ${buildout:directory}/instance.cfg
extensions = jinja2.ext.do
context =
section buildout buildout
raw template_monitor ${monitor2-template:rendered}
# md5sum is fetched from buildout.hash.cfg and can be recalculated automatically by
# calling update-hash
[versions]
Twisted = 20.3.0
attrs = 19.2.0
Automat = 0.3.0
zope.interface = 4.4.2
Nevow = 0.14.5
PyHamcrest = 2.0.2
Pygments = 2.9.0
Pyro = 3.16
bitarray = 2.1.3
constantly = 15.1.0
future = 0.18.2
hyperlink = 21.0.0
incremental = 21.3.0
pathlib = 1.0.1
prompt-toolkit = 3.0.19
zeroconf-py2compat = 0.19.10
# Required by:
# Automat==0.3.0
characteristic = 14.3.0
# Required by:
# zeroconf-py2compat==0.19.10
ifcfg = 0.21
# Required by:
# hyperlink==21.0.0
typing = 3.10.0.0
autobahn = 19.11.2
txaio = 18.8.1
idna = 2.10
mr.developer = 2.0.1
software/caddy-frontend/buildout.hash.cfg
View file @
d64893e5
...
@@ -62,7 +62,7 @@ md5sum = 975177dedf677d24e14cede5d13187ce
...
@@ -62,7 +62,7 @@ md5sum = 975177dedf677d24e14cede5d13187ce
[template-trafficserver-records-config]
[template-trafficserver-records-config]
_update_hash_filename_ = templates/trafficserver/records.config.jinja2
_update_hash_filename_ = templates/trafficserver/records.config.jinja2
md5sum =
88a2db868720009f6092843784b06611
md5sum =
e87238c53d080ef9ef90040e57bc1395
[template-trafficserver-storage-config]
[template-trafficserver-storage-config]
_update_hash_filename_ = templates/trafficserver/storage.config.jinja2
_update_hash_filename_ = templates/trafficserver/storage.config.jinja2
...
...
software/caddy-frontend/templates/trafficserver/records.config.jinja2
View file @
d64893e5
...
@@ -16,6 +16,8 @@ CONFIG proxy.config.output.logfile STRING traffic.out
...
@@ -16,6 +16,8 @@ CONFIG proxy.config.output.logfile STRING traffic.out
CONFIG proxy.config.admin.user_id STRING {{ '#%s' % os_module.geteuid() }}
CONFIG proxy.config.admin.user_id STRING {{ '#%s' % os_module.geteuid() }}
LOCAL proxy.local.incoming_ip_to_bind STRING {{ ats_configuration['local-ip'] }}
LOCAL proxy.local.incoming_ip_to_bind STRING {{ ats_configuration['local-ip'] }}
CONFIG proxy.config.log.logfile_dir STRING {{ ats_directory['log'] }}
CONFIG proxy.config.log.logfile_dir STRING {{ ats_directory['log'] }}
# Never change Server header
CONFIG proxy.config.http.response_server_enabled INT 0
# Implement RFC 5861 with core
# Implement RFC 5861 with core
CONFIG proxy.config.http.cache.open_write_fail_action INT 2
CONFIG proxy.config.http.cache.open_write_fail_action INT 2
CONFIG proxy.config.body_factory.template_sets_dir STRING {{ ats_configuration['templates-dir'] }}
CONFIG proxy.config.body_factory.template_sets_dir STRING {{ ats_configuration['templates-dir'] }}
...
...
software/caddy-frontend/test/test.py
View file @
d64893e5
...
@@ -485,6 +485,9 @@ def fakeHTTPResult(domain, path, port=HTTP_PORT,
...
@@ -485,6 +485,9 @@ def fakeHTTPResult(domain, path, port=HTTP_PORT,
class
TestHandler
(
BaseHTTPRequestHandler
):
class
TestHandler
(
BaseHTTPRequestHandler
):
identification
=
None
identification
=
None
configuration
=
{}
configuration
=
{}
# override Server header response
server_version
=
"TestBackend"
sys_version
=
""
def
log_message
(
self
,
*
args
):
def
log_message
(
self
,
*
args
):
if
os
.
environ
.
get
(
'SLAPOS_TEST_DEBUG'
):
if
os
.
environ
.
get
(
'SLAPOS_TEST_DEBUG'
):
...
@@ -843,6 +846,19 @@ class HttpFrontendTestCase(SlapOSInstanceTestCase):
...
@@ -843,6 +846,19 @@ class HttpFrontendTestCase(SlapOSInstanceTestCase):
except
Exception
as
e
:
except
Exception
as
e
:
self
.
fail
(
e
)
self
.
fail
(
e
)
def
assertResponseHeaders
(
self
,
result
):
headers
=
result
.
headers
.
copy
()
self
.
assertKeyWithPop
(
'Date'
,
headers
)
# drop vary-keys
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
headers
.
pop
(
'Transfer-Encoding'
,
None
)
self
.
assertEqual
(
'TestBackend'
,
headers
.
pop
(
'Server'
,
''
))
return
headers
def
assertLogAccessUrlWithPop
(
self
,
parameter_dict
):
def
assertLogAccessUrlWithPop
(
self
,
parameter_dict
):
log_access_url
=
parameter_dict
.
pop
(
'log-access-url'
)
log_access_url
=
parameter_dict
.
pop
(
'log-access-url'
)
...
@@ -3612,18 +3628,9 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -3612,18 +3628,9 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
headers
=
result
.
headers
.
copy
()
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
# drop keys appearing randomly in headers
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
@@ -3654,18 +3661,9 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -3654,18 +3661,9 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
headers
=
result
.
headers
.
copy
(
)
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
# drop keys appearing randomly in headers
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
@@ -3712,18 +3710,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -3712,18 +3710,8 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
headers
=
result
.
headers
.
copy
()
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
# drop keys appearing randomly in headers
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
@@ -3743,7 +3731,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -3743,7 +3731,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqual
(
httplib
.
OK
,
result
.
status_code
)
self
.
assertEqual
(
httplib
.
OK
,
result
.
status_code
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/HTTPS/test'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/HTTPS/test'
)
headers
=
result
.
headers
.
copy
(
)
self
.
assertResponseHeaders
(
result
)
result
=
fakeHTTPSResult
(
result
=
fakeHTTPSResult
(
parameter_dict
[
'domain'
],
parameter_dict
[
'domain'
],
...
@@ -3753,8 +3741,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -3753,8 +3741,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqual
(
httplib
.
OK
,
result
.
status_code
)
self
.
assertEqual
(
httplib
.
OK
,
result
.
status_code
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/HTTP/test'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/HTTP/test'
)
self
.
assertResponseHeaders
(
result
)
headers
=
result
.
headers
.
copy
()
def
test_enable_cache
(
self
):
def
test_enable_cache
(
self
):
parameter_dict
=
self
.
assertSlaveBase
(
'enable_cache'
)
parameter_dict
=
self
.
assertSlaveBase
(
'enable_cache'
)
...
@@ -3771,18 +3758,10 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -3771,18 +3758,10 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
headers
=
result
.
headers
.
copy
(
)
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
# drop keys appearing randomly in headers
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
@@ -3973,18 +3952,10 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -3973,18 +3952,10 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path/deeper'
)
headers
=
result
.
headers
.
copy
(
)
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
# drop keys appearing randomly in headers
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
@@ -4118,18 +4089,10 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -4118,18 +4089,10 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
headers
=
result
.
headers
.
copy
(
)
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
# drop keys appearing randomly in headers
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
@@ -4165,18 +4128,10 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -4165,18 +4128,10 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
headers
=
result
.
headers
.
copy
(
)
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
self
.
assertKeyWithPop
(
'Age'
,
headers
)
# drop keys appearing randomly in headers
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
@@ -4206,16 +4161,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -4206,16 +4161,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
headers
=
result
.
headers
.
copy
()
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
# drop vary-keys
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
...
@@ -4240,17 +4186,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
...
@@ -4240,17 +4186,7 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
headers
=
result
.
headers
.
copy
()
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
# drop vary-keys
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
@@ -5017,17 +4953,7 @@ class TestSlaveGlobalDisableHttp2(TestSlave):
...
@@ -5017,17 +4953,7 @@ class TestSlaveGlobalDisableHttp2(TestSlave):
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
self
.
assertEqualResultJson
(
result
,
'Path'
,
'/test-path'
)
headers
=
result
.
headers
.
copy
()
headers
=
self
.
assertResponseHeaders
(
result
)
self
.
assertKeyWithPop
(
'Server'
,
headers
)
self
.
assertKeyWithPop
(
'Date'
,
headers
)
# drop vary-keys
headers
.
pop
(
'Content-Length'
,
None
)
headers
.
pop
(
'Transfer-Encoding'
,
None
)
headers
.
pop
(
'Connection'
,
None
)
headers
.
pop
(
'Keep-Alive'
,
None
)
self
.
assertEqual
(
self
.
assertEqual
(
{
{
'Content-type'
:
'application/json'
,
'Content-type'
:
'application/json'
,
...
...
software/erp5/instance-mariadb-schema.json
View file @
d64893e5
...
@@ -111,6 +111,16 @@
...
@@ -111,6 +111,16 @@
"default"
:
false
,
"default"
:
false
,
"type"
:
"boolean"
"type"
:
"boolean"
},
},
"character-set-server"
:
{
"description"
:
"The server default character set"
,
"default"
:
"utf8mb4"
,
"type"
:
"string"
},
"collation-server"
:
{
"description"
:
"The server default collation"
,
"default"
:
"utf8mb4_general_ci"
,
"type"
:
"string"
},
"ssl"
:
{
"ssl"
:
{
"description"
:
"Enable and define SSL support for network connections"
,
"description"
:
"Enable and define SSL support for network connections"
,
"default"
:
{},
"default"
:
{},
...
...
software/galene/software.cfg
View file @
d64893e5
...
@@ -25,7 +25,7 @@ eggs =
...
@@ -25,7 +25,7 @@ eggs =
<= go-git-package
<= go-git-package
go.importpath = lab.nexedi.com/nexedi/galene
go.importpath = lab.nexedi.com/nexedi/galene
repository = https://lab.nexedi.com/nexedi/galene.git
repository = https://lab.nexedi.com/nexedi/galene.git
revision = galene-0.4
revision = galene-0.4
.4
[gowork]
[gowork]
install =
install =
...
...
software/kvm/buildout.hash.cfg
View file @
d64893e5
...
@@ -19,7 +19,7 @@ md5sum = 087f226ba90928dcc5a722d7008c867a
...
@@ -19,7 +19,7 @@ md5sum = 087f226ba90928dcc5a722d7008c867a
[template-kvm]
[template-kvm]
filename = instance-kvm.cfg.jinja2
filename = instance-kvm.cfg.jinja2
md5sum =
d949e6100fd4e01819cc2867a65c6e65
md5sum =
baa3ee5b653731124bfc2ac2fa835787
[template-kvm-cluster]
[template-kvm-cluster]
filename = instance-kvm-cluster.cfg.jinja2.in
filename = instance-kvm-cluster.cfg.jinja2.in
...
...
software/kvm/instance-kvm.cfg.jinja2
View file @
d64893e5
...
@@ -879,6 +879,7 @@ ipv6-network-info =
...
@@ -879,6 +879,7 @@ ipv6-network-info =
{% if use_tap and slap_configuration.get('tap-ipv4-addr') -%}
{% if use_tap and slap_configuration.get('tap-ipv4-addr') -%}
{% do part_list.append('network-config-ipv4') %}
[network-config-ipv4]
[network-config-ipv4]
recipe = plone.recipe.command
recipe = plone.recipe.command
filename = netconfig.sh
filename = netconfig.sh
...
...
software/kvm/test/test.py
View file @
d64893e5
...
@@ -443,6 +443,12 @@ class TestAccessDefaultBootstrap(MonitorAccessMixin, InstanceTestCase):
...
@@ -443,6 +443,12 @@ class TestAccessDefaultBootstrap(MonitorAccessMixin, InstanceTestCase):
result
.
status_code
result
.
status_code
)
)
self
.
assertIn
(
'<title>noVNC</title>'
,
result
.
text
)
self
.
assertIn
(
'<title>noVNC</title>'
,
result
.
text
)
# check that expected files to configure the VM are exposed by the instance
self
.
assertEqual
(
[
'delDefaultIface'
,
'netconfig.sh'
],
sorted
(
os
.
listdir
(
os
.
path
.
join
(
self
.
computer_partition_root_path
,
'srv'
,
'public'
)))
)
@
skipUnlessKvm
@
skipUnlessKvm
...
...
software/neoppod/buildout.hash.cfg
View file @
d64893e5
...
@@ -18,7 +18,7 @@ md5sum = 2bd1779425b7561682c0de5496d808ed
...
@@ -18,7 +18,7 @@ md5sum = 2bd1779425b7561682c0de5496d808ed
[root-common]
[root-common]
filename = root-common.cfg.in
filename = root-common.cfg.in
md5sum =
c13b4f1a5aa526a8d3f8e02bf6baf785
md5sum =
ae00507d9e69209a0babd725cf6be536
[instance-neo-admin]
[instance-neo-admin]
filename = instance-neo-admin.cfg.in
filename = instance-neo-admin.cfg.in
...
@@ -38,7 +38,7 @@ md5sum = a8939dcf440126a30db661b5a0a1bfb7
...
@@ -38,7 +38,7 @@ md5sum = a8939dcf440126a30db661b5a0a1bfb7
[template-neo]
[template-neo]
filename = instance.cfg.in
filename = instance.cfg.in
md5sum =
9e63e16eda75e73ad4ffb50afde0505d
md5sum =
3c7770c03c51ee12d5a94f0924e98990
[cluster]
[cluster]
filename = cluster.cfg.in
filename = cluster.cfg.in
...
...
software/neoppod/instance.cfg.in
View file @
d64893e5
...
@@ -9,7 +9,7 @@ rendered = ${buildout:parts-directory}/${:_buildout_section_name_}.cfg
...
@@ -9,7 +9,7 @@ rendered = ${buildout:parts-directory}/${:_buildout_section_name_}.cfg
template = {{ cluster }}
template = {{ cluster }}
extra-context =
extra-context =
import re re
import re re
import url
parse url
parse
import url
lib_parse six.moves.urllib.
parse
import-list =
import-list =
rawfile root_common {{ root_common }}
rawfile root_common {{ root_common }}
...
...
software/neoppod/root-common.cfg.in
View file @
d64893e5
...
@@ -2,13 +2,13 @@
...
@@ -2,13 +2,13 @@
{% set part_list = [] -%}
{% set part_list = [] -%}
{% set sla_dict = {} -%}
{% set sla_dict = {} -%}
{% for sla, ref_list in s
lapparameter_dict.get('sla-dict', {}).iteritems(
) -%}
{% for sla, ref_list in s
ix.iteritems(slapparameter_dict.get('sla-dict', {})
) -%}
{% do sla_dict.update(dict.fromkeys(ref_list, sla)) -%}
{% do sla_dict.update(dict.fromkeys(ref_list, sla)) -%}
{% endfor -%}
{% endfor -%}
{% macro sla(name, required=False) -%}
{% macro sla(name, required=False) -%}
{% if required or name in sla_dict -%}
{% if required or name in sla_dict -%}
{% for k, (v,) in
urlparse.parse_qs(sla_dict.pop(name), strict_parsing=1).iteritems(
) -%}
{% for k, (v,) in
six.iteritems(urllib_parse.parse_qs(sla_dict.pop(name), strict_parsing=1)
) -%}
sla-{{ k }} = {{ v }}
sla-{{ k }} = {{ v }}
{% endfor -%}
{% endfor -%}
{% else -%}
{% else -%}
...
@@ -133,7 +133,7 @@ config-monitor-port = {{ dumps(port) }}
...
@@ -133,7 +133,7 @@ config-monitor-port = {{ dumps(port) }}
{%- endif %}
{%- endif %}
config-monitor = {{ dumps(parameter_dict.get('monitor', {})) }}
config-monitor = {{ dumps(parameter_dict.get('monitor', {})) }}
{%- endif %}
{%- endif %}
{%- for k, v in
node.iteritems(
) %}
{%- for k, v in
six.iteritems(node
) %}
config-{{ k }} = {{ dumps(v) }}
config-{{ k }} = {{ dumps(v) }}
{%- endfor %}
{%- endfor %}
{{ sla(section_id) }}
{{ sla(section_id) }}
...
...
software/ors-amarisoft/buildout.hash.cfg
View file @
d64893e5
...
@@ -20,23 +20,23 @@ md5sum = 6ea4fa210a91c15278c847a809de5991
...
@@ -20,23 +20,23 @@ md5sum = 6ea4fa210a91c15278c847a809de5991
[template-lte-enb-epc]
[template-lte-enb-epc]
_update_hash_filename_ = instance-enb-epc.jinja2.cfg
_update_hash_filename_ = instance-enb-epc.jinja2.cfg
md5sum =
cf6c400d9fa5b0942f9be7145f77b8de
md5sum =
1358f8e0a4cecefe4cdf389b69067f34
[template-lte-enb]
[template-lte-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg
_update_hash_filename_ = instance-enb.jinja2.cfg
md5sum =
fe249168a3f50b0efe6aeae39afb03ae
md5sum =
e4c224da723ad56091f27ed5c0b0bbca
[template-lte-gnb-epc]
[template-lte-gnb-epc]
_update_hash_filename_ = instance-gnb-epc.jinja2.cfg
_update_hash_filename_ = instance-gnb-epc.jinja2.cfg
md5sum =
f94c3e2f714629d9e1fc9b2f7c8eb586
md5sum =
b9a58fa4037d32fc1dc4f5ef89e6211a
[template-lte-gnb]
[template-lte-gnb]
_update_hash_filename_ = instance-gnb.jinja2.cfg
_update_hash_filename_ = instance-gnb.jinja2.cfg
md5sum =
6deb38b3de44f6e0a43b49fd13f0f072
md5sum =
0b74993990a0dfa3c6429dc4ac716826
[template-lte-epc]
[template-lte-epc]
_update_hash_filename_ = instance-epc.jinja2.cfg
_update_hash_filename_ = instance-epc.jinja2.cfg
md5sum =
089f62e736cdc620eafc2c47b050fe13
md5sum =
35556ebd82be804584482a7fe5eff0be
[ue_db.jinja2.cfg]
[ue_db.jinja2.cfg]
filename = config/ue_db.jinja2.cfg
filename = config/ue_db.jinja2.cfg
...
...
software/ors-amarisoft/instance-enb-epc.jinja2.cfg
View file @
d64893e5
...
@@ -52,6 +52,12 @@ return = monitor-base-url
...
@@ -52,6 +52,12 @@ return = monitor-base-url
name = EPC
name = EPC
software-type = epc
software-type = epc
config-name = epc
config-name = epc
{% if slapparameter_dict.get("mme_config_link", None) %}
config-mme_config_link = {{ dumps(slapparameter_dict["mme_config_link"]) }}
{% endif %}
{% if slapparameter_dict.get("mme_config_version", None) %}
config-mme_config_version = {{ dumps(slapparameter_dict["mme_config_version"]) }}
{% endif %}
[lte-enb-request]
[lte-enb-request]
<= request-common-base
<= request-common-base
...
@@ -76,6 +82,12 @@ config-mme_addr = {{ dumps(slapparameter_dict["mme_addr"]) }}
...
@@ -76,6 +82,12 @@ config-mme_addr = {{ dumps(slapparameter_dict["mme_addr"]) }}
{% if slapparameter_dict.get("enb_id", None) %}
{% if slapparameter_dict.get("enb_id", None) %}
config-enb_id = {{ dumps(slapparameter_dict["enb_id"]) }}
config-enb_id = {{ dumps(slapparameter_dict["enb_id"]) }}
{% endif %}
{% endif %}
{% if slapparameter_dict.get("enb_config_link", None) %}
config-enb_config_link = {{ dumps(slapparameter_dict["enb_config_link"]) }}
{% endif %}
{% if slapparameter_dict.get("enb_config_version", None) %}
config-enb_config_version = {{ dumps(slapparameter_dict["enb_config_version"]) }}
{% endif %}
[monitor-base-url-dict]
[monitor-base-url-dict]
lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
...
...
software/ors-amarisoft/instance-enb.jinja2.cfg
View file @
d64893e5
...
@@ -60,6 +60,14 @@ extensions = jinja2.ext.do
...
@@ -60,6 +60,14 @@ extensions = jinja2.ext.do
context =
context =
section directory directory
section directory directory
{% if slapparameter_dict.get("enb_config_link", None) %}
[enb-config-dl]
recipe = slapos.recipe.build:download
url = {{ slapparameter_dict.get("enb_config_link") }}
version = {{ slapparameter_dict.get("enb_config_version") }}
offline = false
{% endif %}
[lte-enb-sh-wrapper]
[lte-enb-sh-wrapper]
recipe = slapos.recipe.template:jinja2
recipe = slapos.recipe.template:jinja2
rendered = ${directory:bin}/${:_buildout_section_name_}
rendered = ${directory:bin}/${:_buildout_section_name_}
...
@@ -98,7 +106,11 @@ context =
...
@@ -98,7 +106,11 @@ context =
[lte-enb-config]
[lte-enb-config]
<= config-base
<= config-base
{% if slapparameter_dict.get("enb_config_link", None) %}
template = ${enb-config-dl:target}
{% else %}
template = {{ enb_template }}
template = {{ enb_template }}
{% endif %}
rendered = ${directory:etc}/enb.cfg
rendered = ${directory:etc}/enb.cfg
[publish-connection-information]
[publish-connection-information]
...
...
software/ors-amarisoft/instance-epc.jinja2.cfg
View file @
d64893e5
...
@@ -58,6 +58,14 @@ extensions = jinja2.ext.do
...
@@ -58,6 +58,14 @@ extensions = jinja2.ext.do
context =
context =
section directory directory
section directory directory
{% if slapparameter_dict.get("mme_config_link", None) %}
[mme-config-dl]
recipe = slapos.recipe.build:download
url = {{ slapparameter_dict.get("mme_config_link") }}
version = {{ slapparameter_dict.get("mme_config_version") }}
offline = false
{% endif %}
### IMS
### IMS
[lte-ims-service]
[lte-ims-service]
recipe = slapos.cookbook:wrapper
recipe = slapos.cookbook:wrapper
...
@@ -122,7 +130,11 @@ rendered = ${directory:etc}/ims.cfg
...
@@ -122,7 +130,11 @@ rendered = ${directory:etc}/ims.cfg
[lte-mme-config]
[lte-mme-config]
<= config-base
<= config-base
{% if slapparameter_dict.get("mme_config_link", None) %}
template = ${mme-config-dl:target}
{% else %}
template = {{ mme_template }}
template = {{ mme_template }}
{% endif %}
rendered = ${directory:etc}/mme.cfg
rendered = ${directory:etc}/mme.cfg
context =
context =
section directory directory
section directory directory
...
...
software/ors-amarisoft/instance-gnb-epc.jinja2.cfg
View file @
d64893e5
...
@@ -52,6 +52,12 @@ return = monitor-base-url
...
@@ -52,6 +52,12 @@ return = monitor-base-url
name = EPC
name = EPC
software-type = epc
software-type = epc
config-name = epc
config-name = epc
{% if slapparameter_dict.get("mme_config_link", None) %}
config-mme_config_link = {{ dumps(slapparameter_dict["mme_config_link"]) }}
{% endif %}
{% if slapparameter_dict.get("mme_config_version", None) %}
config-mme_config_version = {{ dumps(slapparameter_dict["mme_config_version"]) }}
{% endif %}
[lte-gnb-request]
[lte-gnb-request]
<= request-common-base
<= request-common-base
...
@@ -79,6 +85,12 @@ config-mme_addr = {{ dumps(slapparameter_dict["mme_addr"]) }}
...
@@ -79,6 +85,12 @@ config-mme_addr = {{ dumps(slapparameter_dict["mme_addr"]) }}
{% if slapparameter_dict.get("enb_id", None) %}
{% if slapparameter_dict.get("enb_id", None) %}
config-enb_id = {{ dumps(slapparameter_dict["enb_id"]) }}
config-enb_id = {{ dumps(slapparameter_dict["enb_id"]) }}
{% endif %}
{% endif %}
{% if slapparameter_dict.get("gnb_config_link", None) %}
config-gnb_config_link = {{ dumps(slapparameter_dict["gnb_config_link"]) }}
{% endif %}
{% if slapparameter_dict.get("gnb_config_version", None) %}
config-gnb_config_version = {{ dumps(slapparameter_dict["gnb_config_version"]) }}
{% endif %}
[monitor-base-url-dict]
[monitor-base-url-dict]
lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
...
...
software/ors-amarisoft/instance-gnb.jinja2.cfg
View file @
d64893e5
...
@@ -60,6 +60,14 @@ extensions = jinja2.ext.do
...
@@ -60,6 +60,14 @@ extensions = jinja2.ext.do
context =
context =
section directory directory
section directory directory
{% if slapparameter_dict.get("gnb_config_link", None) %}
[gnb-config-dl]
recipe = slapos.recipe.build:download
url = {{ slapparameter_dict.get("gnb_config_link") }}
version = {{ slapparameter_dict.get("gnb_config_version") }}
offline = false
{% endif %}
[lte-enb-sh-wrapper]
[lte-enb-sh-wrapper]
recipe = slapos.recipe.template:jinja2
recipe = slapos.recipe.template:jinja2
rendered = ${directory:bin}/${:_buildout_section_name_}
rendered = ${directory:bin}/${:_buildout_section_name_}
...
@@ -98,7 +106,11 @@ context =
...
@@ -98,7 +106,11 @@ context =
[lte-gnb-config]
[lte-gnb-config]
<= config-base
<= config-base
{% if slapparameter_dict.get("gnb_config_link", None) %}
template = ${gnb-config-dl:target}
{% else %}
template = {{ gnb_template }}
template = {{ gnb_template }}
{% endif %}
rendered = ${directory:etc}/gnb.cfg
rendered = ${directory:etc}/gnb.cfg
[publish-connection-information]
[publish-connection-information]
...
...
software/repman/buildout.hash.cfg
View file @
d64893e5
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
# not need these here).
# not need these here).
[instance.cfg]
[instance.cfg]
filename = instance.cfg.in
filename = instance.cfg.in
md5sum =
af2fc4a7a0f782fed2cb1112ef3cb397
md5sum =
1c9c4c254f371337fe08b7922901f8a9
[instance-repman.cfg]
[instance-repman.cfg]
_update_hash_filename_ = instance-repman.cfg.jinja2.in
_update_hash_filename_ = instance-repman.cfg.jinja2.in
...
@@ -34,7 +34,7 @@ md5sum = 0eeb24c6aa0760f0d33c4cc2828ddf30
...
@@ -34,7 +34,7 @@ md5sum = 0eeb24c6aa0760f0d33c4cc2828ddf30
[template-mariadb.cfg]
[template-mariadb.cfg]
_update_hash_filename_ = instance-mariadb.cfg.jinja2.in
_update_hash_filename_ = instance-mariadb.cfg.jinja2.in
md5sum =
938f1e8087395757f5ae861d20500658
md5sum =
aa25693b324ce5acc00f29b96a2516c0
[template-my-cnf]
[template-my-cnf]
_update_hash_filename_ = templates/my.cnf.in
_update_hash_filename_ = templates/my.cnf.in
...
...
software/repman/instance-mariadb.cfg.jinja2.in
View file @
d64893e5
...
@@ -214,16 +214,10 @@ wait-for-files =
...
@@ -214,16 +214,10 @@ wait-for-files =
{{ supervisord_lib.supervisord_program("mariadb", maradb_program_dict) }}
{{ supervisord_lib.supervisord_program("mariadb", maradb_program_dict) }}
{% do part_list.append("supervisord-mariadb") %}
{% do part_list.append("supervisord-mariadb") %}
[odbc-ini-text]
text = {{ dumps(base64.b64encode( slapparameter_dict.get('odbc-ini', '').encode() )) }}
[{{ section('odbc-ini') }}]
[{{ section('odbc-ini') }}]
< = jinja2-template-base
recipe = slapos.recipe.template
rendered = ${directory:etc}/odbc.ini
output = ${directory:etc}/odbc.ini
template = inline:{% raw -%}
inline = {{ dumps(slapparameter_dict.get('odbc-ini', '')) }}
{{ parameter_dict['text'].decode('base64') }}
{%- endraw %}
context = section parameter_dict odbc-ini-text
[{{ section('logrotate-entry-mariadb') }}]
[{{ section('logrotate-entry-mariadb') }}]
< = logrotate-entry-base
< = logrotate-entry-base
...
...
software/repman/instance.cfg.in
View file @
d64893e5
...
@@ -108,4 +108,3 @@ template = {{ template_mariadb }}
...
@@ -108,4 +108,3 @@ template = {{ template_mariadb }}
filename = instance-mariadb.cfg
filename = instance-mariadb.cfg
extra-context =
extra-context =
section parameter_dict template-mariadb-parameters
section parameter_dict template-mariadb-parameters
import base64 base64
software/theia/buildout.hash.cfg
View file @
d64893e5
...
@@ -23,7 +23,7 @@ md5sum = f2f01a47d98a980177dc1755e618bbb7
...
@@ -23,7 +23,7 @@ md5sum = f2f01a47d98a980177dc1755e618bbb7
[instance-import]
[instance-import]
_update_hash_filename_ = instance-import.cfg.jinja.in
_update_hash_filename_ = instance-import.cfg.jinja.in
md5sum =
b0a2c2b3d59fd6c8ba76c634b83a1ba2
md5sum =
74b9b46769a25add50f9f63365de58ad
[instance-export]
[instance-export]
_update_hash_filename_ = instance-export.cfg.jinja.in
_update_hash_filename_ = instance-export.cfg.jinja.in
...
...
software/theia/instance-import.cfg.jinja.in
View file @
d64893e5
...
@@ -64,15 +64,14 @@ seed = Import {{ root_title }}
...
@@ -64,15 +64,14 @@ seed = Import {{ root_title }}
# in post-notification-run:output and in importer:wrapper.
# in post-notification-run:output and in importer:wrapper.
[post-notification-run]
[post-notification-run]
recipe = slapos.recipe.template:jinja2
# Do nothing because the backup signature will
rendered = $${directory:bin}/post-notification-run-script
# be verified by the import script itself
output = $${:rendered}
recipe = slapos.recipe.build
mode = 0700
output = $${directory:bin}/post-notification-run-script
template =
location = $${:output}
inline:#!${software-info:bash}
install =
# Do nothing because the backup signature will
import os
# be verified by the import script itself
os.symlink("/bin/true", location)
exit 0
[importer]
[importer]
wrapper = $${theia-import-script:rendered}
wrapper = $${theia-import-script:rendered}
...
...
stack/erp5/buildout.cfg
View file @
d64893e5
...
@@ -584,7 +584,7 @@ extra-paths =
...
@@ -584,7 +584,7 @@ extra-paths =
patch-binary = ${patch:location}/bin/patch
patch-binary = ${patch:location}/bin/patch
PyPDF2-patches = ${:_profile_base_location_}/../../component/egg-patch/PyPDF2/0001-Custom-implementation-of-warnings.formatwarning-remo.patch#d25bb0f5dde7f3337a0a50c2f986f5c8
PyPDF2-patches = ${:_profile_base_location_}/../../component/egg-patch/PyPDF2/0001-Custom-implementation-of-warnings.formatwarning-remo.patch#d25bb0f5dde7f3337a0a50c2f986f5c8
PyPDF2-patch-options = -p1
PyPDF2-patch-options = -p1
Acquisition-patches = ${:_profile_base_location_}/../../component/egg-patch/Acquisition/aq_dynamic.patch#1d9a56e9af4371f5b6951ebf217a15d7
Acquisition-patches = ${:_profile_base_location_}/../../component/egg-patch/Acquisition/aq_dynamic
-2.13.12
.patch#1d9a56e9af4371f5b6951ebf217a15d7
Acquisition-patch-options = -p1
Acquisition-patch-options = -p1
python-magic-patches = ${:_profile_base_location_}/../../component/egg-patch/python_magic/magic.patch#de0839bffac17801e39b60873a6c2068
python-magic-patches = ${:_profile_base_location_}/../../component/egg-patch/python_magic/magic.patch#de0839bffac17801e39b60873a6c2068
python-magic-patch-options = -p1
python-magic-patch-options = -p1
...
...
stack/erp5/buildout.hash.cfg
View file @
d64893e5
...
@@ -26,7 +26,7 @@ md5sum = d10b8e35b02b5391cf46bf0c7dbb1196
...
@@ -26,7 +26,7 @@ md5sum = d10b8e35b02b5391cf46bf0c7dbb1196
[template-mariadb]
[template-mariadb]
filename = instance-mariadb.cfg.in
filename = instance-mariadb.cfg.in
md5sum =
f553aa7d6596dcf98e7e61bfb6bd81c7
md5sum =
b664a2221077db5db498422b6c90f015
[template-kumofs]
[template-kumofs]
filename = instance-kumofs.cfg.in
filename = instance-kumofs.cfg.in
...
@@ -34,15 +34,15 @@ md5sum = cfe4696a67bf4886a5d8252a5274a941
...
@@ -34,15 +34,15 @@ md5sum = cfe4696a67bf4886a5d8252a5274a941
[template-zope-conf]
[template-zope-conf]
filename = zope.conf.in
filename = zope.conf.in
md5sum =
70f30111e137d158aeca3d67c4abf643
md5sum =
ce8d03a1b4c1a9e5085ec54ea2744007
[site-zcml]
[site-zcml]
filename = site.zcml
filename = site.zcml
md5sum =
d32417746fcf671d4e86a70379815039
md5sum =
43556e5bca8336dd543ae8068512aa6d
[template-my-cnf]
[template-my-cnf]
filename = my.cnf.in
filename = my.cnf.in
md5sum =
1de449e8c0c4a85c5ce2b447785b7654
md5sum =
c0bde08ec6bd6d333315a15026266b65
[template-mariadb-initial-setup]
[template-mariadb-initial-setup]
filename = mariadb_initial_setup.sql.in
filename = mariadb_initial_setup.sql.in
...
@@ -66,35 +66,35 @@ md5sum = 0969fbb25b05c02ef3c2d437b2f4e1a0
...
@@ -66,35 +66,35 @@ md5sum = 0969fbb25b05c02ef3c2d437b2f4e1a0
[template-run-zelenium]
[template-run-zelenium]
filename = run-zelenium-test.py.in
filename = run-zelenium-test.py.in
md5sum =
7a14019abf48ca100eb94d9add20f5ae
md5sum =
274365ebbade26558ca4836837e781aa
[template]
[template]
filename = instance.cfg.in
filename = instance.cfg.in
md5sum =
0444d646607f8643e987bb62d1cbbc1d
md5sum =
165b0a50672138ee4a3fbe9239af11ba
[template-erp5]
[template-erp5]
filename = instance-erp5.cfg.in
filename = instance-erp5.cfg.in
md5sum =
cb41e15a1585973896a7645dc2ae3a5c
md5sum =
f5a1661449c9681b3de7d4af645124ba
[template-zeo]
[template-zeo]
filename = instance-zeo.cfg.in
filename = instance-zeo.cfg.in
md5sum =
1f33f3b93da32b34e2fd11471648835d
md5sum =
3c59315a8f102a970dc54ded85df735a
[template-zodb-base]
[template-zodb-base]
filename = instance-zodb-base.cfg.in
filename = instance-zodb-base.cfg.in
md5sum =
bc821f9f9696953b10a03ad7b59a1936
md5sum =
0ac4b74436f554cd677f19275d18d880
[template-zope]
[template-zope]
filename = instance-zope.cfg.in
filename = instance-zope.cfg.in
md5sum =
5520e81f1fff3dc26568a614b595da37
md5sum =
06265195ca29805696873b6f8a57a5fd
[template-balancer]
[template-balancer]
filename = instance-balancer.cfg.in
filename = instance-balancer.cfg.in
md5sum =
cbcbe2daf3a51dfab50446a18c0be76e
md5sum =
8b4d6c29e9c5d8fb2e50e6ac96906d97
[template-haproxy-cfg]
[template-haproxy-cfg]
filename = haproxy.cfg.in
filename = haproxy.cfg.in
md5sum =
9d61e05c8578e0f17e349603ccaaf52c
md5sum =
d2d98ed3fafce764991b72371e3e09d5
[template-rsyslogd-cfg]
[template-rsyslogd-cfg]
filename = rsyslogd.cfg.in
filename = rsyslogd.cfg.in
...
...
stack/erp5/haproxy.cfg.in
View file @
d64893e5
...
@@ -150,7 +150,7 @@ defaults
...
@@ -150,7 +150,7 @@ defaults
{% set family_path_routing_dict = parameter_dict['family-path-routing-dict'] %}
{% set family_path_routing_dict = parameter_dict['family-path-routing-dict'] %}
{% set path_routing_list = parameter_dict['path-routing-list'] %}
{% set path_routing_list = parameter_dict['path-routing-list'] %}
{% for name, (port, _, certificate_authentication, backend_list) in sorted(
parameter_dict['backend-dict'].iteritems(
)) -%}
{% for name, (port, _, certificate_authentication, backend_list) in sorted(
six.iteritems(parameter_dict['backend-dict']
)) -%}
listen family_{{ name }}
listen family_{{ name }}
{%- if parameter_dict.get('ca-cert') -%}
{%- if parameter_dict.get('ca-cert') -%}
{%- set ssl_auth = ' ca-file ' ~ parameter_dict['ca-cert'] ~ ' verify' ~ ( ' required' if certificate_authentication else ' optional' ) ~ ' crl-file ' ~ parameter_dict['crl'] %}
{%- set ssl_auth = ' ca-file ' ~ parameter_dict['ca-cert'] ~ ' verify' ~ ( ' required' if certificate_authentication else ' optional' ) ~ ' crl-file ' ~ parameter_dict['crl'] %}
...
@@ -192,7 +192,7 @@ listen family_{{ name }}
...
@@ -192,7 +192,7 @@ listen family_{{ name }}
{% endfor %}
{% endfor %}
{% for (ip, port), (_, backend_dict) in sorted(
parameter_dict['zope-virtualhost-monster-backend-dict'].iteritems(
)) -%}
{% for (ip, port), (_, backend_dict) in sorted(
six.iteritems(parameter_dict['zope-virtualhost-monster-backend-dict']
)) -%}
{% set group_name = 'testrunner_' ~ loop.index0 %}
{% set group_name = 'testrunner_' ~ loop.index0 %}
frontend frontend_{{ group_name }}
frontend frontend_{{ group_name }}
bind {{ ip }}:{{ port }} {{ bind_ssl_crt }}
bind {{ ip }}:{{ port }} {{ bind_ssl_crt }}
...
@@ -211,6 +211,6 @@ frontend frontend_{{ group_name }}
...
@@ -211,6 +211,6 @@ frontend frontend_{{ group_name }}
backend backend_{{ group_name }}_{{ name }}
backend backend_{{ group_name }}_{{ name }}
http-request replace-path ^/{{ name }}(.*) /VirtualHostBase/https/{{ ip }}:{{ port }}/VirtualHostRoot/_vh_{{ name }}\1
http-request replace-path ^/{{ name }}(.*) /VirtualHostBase/https/{{ ip }}:{{ port }}/VirtualHostRoot/_vh_{{ name }}\1
timeout server 8h
timeout server 8h
server {{ name }} {{ urlparse.urlparse(url).netloc }}
server {{ name }} {{ url
lib_
parse.urlparse(url).netloc }}
{%- endfor %}
{%- endfor %}
{% endfor %}
{% endfor %}
stack/erp5/instance-balancer.cfg.in
View file @
d64893e5
...
@@ -38,7 +38,7 @@ mode = 644
...
@@ -38,7 +38,7 @@ mode = 644
{% set frontend_caucase_url_hash_list = [] -%}
{% set frontend_caucase_url_hash_list = [] -%}
{% for frontend_caucase_url in frontend_caucase_url_list -%}
{% for frontend_caucase_url in frontend_caucase_url_list -%}
{% set hash = hashlib.md5(
frontend_caucase_url
).hexdigest() -%}
{% set hash = hashlib.md5(
six.ensure_binary(frontend_caucase_url)
).hexdigest() -%}
{% do frontend_caucase_url_hash_list.append(hash) -%}
{% do frontend_caucase_url_hash_list.append(hash) -%}
{% set data_dir = '${directory:client-cert-ca}/%s' % hash -%}
{% set data_dir = '${directory:client-cert-ca}/%s' % hash -%}
{{ caucase.updater(
{{ caucase.updater(
...
@@ -120,9 +120,9 @@ update-command = ${:command}
...
@@ -120,9 +120,9 @@ update-command = ${:command}
{% set haproxy_dict = {} -%}
{% set haproxy_dict = {} -%}
{% set zope_virtualhost_monster_backend_dict = {} %}
{% set zope_virtualhost_monster_backend_dict = {} %}
{% set test_runner_url_dict = {} %} {# family_name => list of URLs #}
{% set test_runner_url_dict = {} %} {# family_name => list of URLs #}
{% set next_port =
itertools.count(slapparameter_dict['tcpv4-port']).next
-%}
{% set next_port =
functools.partial(next, itertools.count(slapparameter_dict['tcpv4-port']))
-%}
{% for family_name, parameter_id_list in sorted(
{% for family_name, parameter_id_list in sorted(
s
lapparameter_dict['zope-family-dict'].iteritems(
)) -%}
s
ix.iteritems(slapparameter_dict['zope-family-dict']
)) -%}
{% set zope_family_address_list = [] -%}
{% set zope_family_address_list = [] -%}
{% set ssl_authentication = slapparameter_dict['ssl-authentication-dict'].get(family_name, False) -%}
{% set ssl_authentication = slapparameter_dict['ssl-authentication-dict'].get(family_name, False) -%}
{% set has_webdav = [] -%}
{% set has_webdav = [] -%}
...
@@ -205,7 +205,7 @@ template = {{ parameter_dict['template-haproxy-cfg'] }}
...
@@ -205,7 +205,7 @@ template = {{ parameter_dict['template-haproxy-cfg'] }}
rendered = ${directory:etc}/haproxy.cfg
rendered = ${directory:etc}/haproxy.cfg
context =
context =
section parameter_dict haproxy-cfg-parameter-dict
section parameter_dict haproxy-cfg-parameter-dict
import url
parse url
parse
import url
lib_parse six.moves.urllib.
parse
extensions = jinja2.ext.do
extensions = jinja2.ext.do
[haproxy-reload]
[haproxy-reload]
...
@@ -306,7 +306,7 @@ certificate-and-key = ${directory:etc}/certificate-and-key-generated.pem
...
@@ -306,7 +306,7 @@ certificate-and-key = ${directory:etc}/certificate-and-key-generated.pem
promise = check_socket_listening
promise = check_socket_listening
name = haproxy.py
name = haproxy.py
config-host = {{ ipv4 }}
config-host = {{ ipv4 }}
config-port = {{
haproxy_dict.values()[0]
[0] }}
config-port = {{
next(six.itervalues(haproxy_dict))
[0] }}
[{{ section('publish') }}]
[{{ section('publish') }}]
recipe = slapos.cookbook:publish.serialised
recipe = slapos.cookbook:publish.serialised
...
...
stack/erp5/instance-erp5.cfg.in
View file @
d64893e5
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
{% set partition_thread_count_list = [] -%}
{% set partition_thread_count_list = [] -%}
{% set zope_partition_dict = slapparameter_dict.get('zope-partition-dict', {'1': {}}) -%}
{% set zope_partition_dict = slapparameter_dict.get('zope-partition-dict', {'1': {}}) -%}
{% set zope_family_override_dict = slapparameter_dict.get('family-override', {}) -%}
{% set zope_family_override_dict = slapparameter_dict.get('family-override', {}) -%}
{% for zope_parameter_dict in
zope_partition_dict.values(
) -%}
{% for zope_parameter_dict in
six.itervalues(zope_partition_dict
) -%}
{# Apply some zope_parameter_dict default values, to avoid duplication. -#}
{# Apply some zope_parameter_dict default values, to avoid duplication. -#}
{% do zope_parameter_dict.setdefault('thread-amount', 4) -%}
{% do zope_parameter_dict.setdefault('thread-amount', 4) -%}
{% do zope_parameter_dict.setdefault('instance-count', 1) -%}
{% do zope_parameter_dict.setdefault('instance-count', 1) -%}
...
@@ -49,7 +49,7 @@ config-computer-memory-percent-threshold = {{ dumps(monitor_dict.get('computer-m
...
@@ -49,7 +49,7 @@ config-computer-memory-percent-threshold = {{ dumps(monitor_dict.get('computer-m
name = {{ name }}
name = {{ name }}
software-type = {{ software_type }}
software-type = {{ software_type }}
return = {{ ' '.join(ret) }}
return = {{ ' '.join(ret) }}
{% for ret, publish in
ret.iteritems(
) -%}
{% for ret, publish in
six.iteritems(ret
) -%}
{% if publish -%}
{% if publish -%}
{% do publish_dict.__setitem__(name ~ '-' ~ ret, '${' ~ section ~ ':connection-' ~ ret ~ '}') %}
{% do publish_dict.__setitem__(name ~ '-' ~ ret, '${' ~ section ~ ':connection-' ~ ret ~ '}') %}
{% endif -%}
{% endif -%}
...
@@ -58,10 +58,10 @@ return = {{ ' '.join(ret) }}
...
@@ -58,10 +58,10 @@ return = {{ ' '.join(ret) }}
{% endif -%}
{% endif -%}
{% endfor -%}
{% endfor -%}
{{ root_common.sla(name) }}
{{ root_common.sla(name) }}
{% for k, v in
config.iteritems(
) -%}
{% for k, v in
six.iteritems(config
) -%}
config-{{ k }} = {{ dumps(v) }}
config-{{ k }} = {{ dumps(v) }}
{% endfor -%}
{% endfor -%}
{% for k, v in
key_config.iteritems(
) -%}
{% for k, v in
six.iteritems(key_config
) -%}
config-{{ k }} = {{ '${' ~ v ~ '}' }}
config-{{ k }} = {{ '${' ~ v ~ '}' }}
{% endfor -%}
{% endfor -%}
config-name = {{ name }}
config-name = {{ name }}
...
@@ -177,7 +177,7 @@ connection-url = smtp://127.0.0.2:0/
...
@@ -177,7 +177,7 @@ connection-url = smtp://127.0.0.2:0/
{% endfor -%}
{% endfor -%}
{% do assert(len(mountpoints) == len(zodb_dict)) -%}
{% do assert(len(mountpoints) == len(zodb_dict)) -%}
{% set neo = [] -%}
{% set neo = [] -%}
{% for server_type, server_dict in s
torage_dict.iteritems(
) -%}
{% for server_type, server_dict in s
ix.iteritems(storage_dict
) -%}
{% if server_type == 'neo' -%}
{% if server_type == 'neo' -%}
{% set ((name, server_dict),) = server_dict.items() -%}
{% set ((name, server_dict),) = server_dict.items() -%}
{% do neo.append(server_dict.get('cluster')) -%}
{% do neo.append(server_dict.get('cluster')) -%}
...
@@ -196,7 +196,7 @@ connection-url = smtp://127.0.0.2:0/
...
@@ -196,7 +196,7 @@ connection-url = smtp://127.0.0.2:0/
[request-zodb-base]
[request-zodb-base]
config-zodb-dict = {{ dumps(zodb_dict) }}
config-zodb-dict = {{ dumps(zodb_dict) }}
{% for server_type, server_dict in s
torage_dict.iteritems(
) -%}
{% for server_type, server_dict in s
ix.iteritems(storage_dict
) -%}
{% if server_type == 'neo' -%}
{% if server_type == 'neo' -%}
config-neo-cluster = ${publish-early:neo-cluster}
config-neo-cluster = ${publish-early:neo-cluster}
config-neo-name = {{ server_dict.keys()[0] }}
config-neo-name = {{ server_dict.keys()[0] }}
...
@@ -272,7 +272,7 @@ software-type = zope
...
@@ -272,7 +272,7 @@ software-type = zope
{% set zope_backend_path_dict = {} -%}
{% set zope_backend_path_dict = {} -%}
{% set ssl_authentication_dict = {} -%}
{% set ssl_authentication_dict = {} -%}
{% set jupyter_zope_family_default = [] -%}
{% set jupyter_zope_family_default = [] -%}
{% for custom_name, zope_parameter_dict in
zope_partition_dict.items(
) -%}
{% for custom_name, zope_parameter_dict in
six.iteritems(zope_partition_dict
) -%}
{% set partition_name = 'zope-' ~ custom_name -%}
{% set partition_name = 'zope-' ~ custom_name -%}
{% set section_name = 'request-' ~ partition_name -%}
{% set section_name = 'request-' ~ partition_name -%}
{% set promise_software_url_section_name = 'promise-software-url' ~ partition_name -%}
{% set promise_software_url_section_name = 'promise-software-url' ~ partition_name -%}
...
@@ -461,7 +461,7 @@ recipe = slapos.cookbook:publish.serialised
...
@@ -461,7 +461,7 @@ recipe = slapos.cookbook:publish.serialised
Pick any published hosts-dict, they are expected to be identical - and there is
Pick any published hosts-dict, they are expected to be identical - and there is
no way to check here.
no way to check here.
-#}
-#}
hosts-dict = {{ '${' ~
zope_address_list_id_dict.keys()[0]
~ ':connection-hosts-dict}' }}
hosts-dict = {{ '${' ~
next(iter(zope_address_list_id_dict))
~ ':connection-hosts-dict}' }}
{% endif -%}
{% endif -%}
{% for name, value in publish_dict.items() -%}
{% for name, value in publish_dict.items() -%}
{{ name }} = {{ value }}
{{ name }} = {{ value }}
...
...
stack/erp5/instance-mariadb.cfg.in
View file @
d64893e5
...
@@ -142,6 +142,8 @@ innodb-log-file-size = {{ dumps(slapparameter_dict.get('innodb-log-file-size', 0
...
@@ -142,6 +142,8 @@ innodb-log-file-size = {{ dumps(slapparameter_dict.get('innodb-log-file-size', 0
innodb-file-per-table = {{ dumps(slapparameter_dict.get('innodb-file-per-table', 0)) }}
innodb-file-per-table = {{ dumps(slapparameter_dict.get('innodb-file-per-table', 0)) }}
innodb-log-buffer-size = {{ dumps(slapparameter_dict.get('innodb-log-buffer-size', 0)) }}
innodb-log-buffer-size = {{ dumps(slapparameter_dict.get('innodb-log-buffer-size', 0)) }}
relaxed-writes = {{ dumps(slapparameter_dict.get('relaxed-writes', False)) }}
relaxed-writes = {{ dumps(slapparameter_dict.get('relaxed-writes', False)) }}
character-set-server = {{ dumps(slapparameter_dict.get('character-set-server', 'utf8mb4')) }}
collation-server = {{ dumps(slapparameter_dict.get('collation-server', 'utf8mb4_general_ci')) }}
{% if incremental_backup_retention_days > -1 -%}
{% if incremental_backup_retention_days > -1 -%}
binlog-path = ${directory:mariadb-backup-incremental}/binlog
binlog-path = ${directory:mariadb-backup-incremental}/binlog
# XXX: binlog rotation happens along with other log's rotation
# XXX: binlog rotation happens along with other log's rotation
...
@@ -195,16 +197,11 @@ environ =
...
@@ -195,16 +197,11 @@ environ =
{{ variable }}
{{ variable }}
{%- endfor %}
{%- endfor %}
[odbc-ini-text]
text = {{ dumps(slapparameter_dict.get('odbc-ini', '').encode('base64')) }}
[{{ section('odbc-ini') }}]
[{{ section('odbc-ini') }}]
< = jinja2-template-base
recipe = slapos.recipe.template
rendered = ${directory:etc}/odbc.ini
output = ${directory:etc}/odbc.ini
template = inline:{% raw -%}
inline = {{ dumps(slapparameter_dict.get('odbc-ini', '')) }}
{{ parameter_dict['text'].decode('base64') }}
{%- endraw %}
context = section parameter_dict odbc-ini-text
[{{ section('logrotate-entry-mariadb') }}]
[{{ section('logrotate-entry-mariadb') }}]
< = logrotate-entry-base
< = logrotate-entry-base
...
...
stack/erp5/instance-zeo.cfg.in
View file @
d64893e5
{% set
next_port = itertools.count(slapparameter_dict['tcpv4-port']).next
-%}
{% set
ports = itertools.count(slapparameter_dict['tcpv4-port'])
-%}
{% set ipv4 = (ipv4_set | list)[0] -%}
{% set ipv4 = (ipv4_set | list)[0] -%}
{% set backup_periodicity = slapparameter_dict.get('backup-periodicity', 'daily') -%}
{% set backup_periodicity = slapparameter_dict.get('backup-periodicity', 'daily') -%}
{% set part_list = [] -%}
{% set part_list = [] -%}
...
@@ -19,13 +19,13 @@ ip = {{ ipv4 }}
...
@@ -19,13 +19,13 @@ ip = {{ ipv4 }}
{% set known_tid_storage_identifier_dict = {} -%}
{% set known_tid_storage_identifier_dict = {} -%}
{% set zodb_dict = {} -%}
{% set zodb_dict = {} -%}
{% for name, zodb in s
lapparameter_dict['zodb-dict'].iteritems(
) -%}
{% for name, zodb in s
ix.iteritems(slapparameter_dict['zodb-dict']
) -%}
{% do zodb_dict.setdefault(zodb.get('family', 'default').lower(), []).append((name, zodb)) -%}
{% do zodb_dict.setdefault(zodb.get('family', 'default').lower(), []).append((name, zodb)) -%}
{% endfor -%}
{% endfor -%}
{% set tidstorage_port = slapparameter_dict['tcpv4-port'] + len(zodb_dict) -%}
{% set tidstorage_port = slapparameter_dict['tcpv4-port'] + len(zodb_dict) -%}
{% for family, zodb in
zodb_dict.iteritems(
) -%}
{% for family, zodb in
six.iteritems(zodb_dict
) -%}
{% set storage_list = [] -%}
{% set storage_list = [] -%}
{% set current_port = next
_port(
) -%}
{% set current_port = next
(ports
) -%}
{% set known_tid_storage_identifier_host = (ipv4, current_port), -%}
{% set known_tid_storage_identifier_host = (ipv4, current_port), -%}
{% for name, zodb in zodb -%}
{% for name, zodb in zodb -%}
{% do storage_dict.__setitem__(name, {'server': ipv4 ~ ':' ~ current_port, 'storage': name}) %}
{% do storage_dict.__setitem__(name, {'server': ipv4 ~ ':' ~ current_port, 'storage': name}) %}
...
@@ -140,7 +140,7 @@ input = inline: #!/bin/sh
...
@@ -140,7 +140,7 @@ input = inline: #!/bin/sh
zodb_backup_directory="{{ default_backup_path }}"
zodb_backup_directory="{{ default_backup_path }}"
repozo="${tidstorage:repozo-binary}"
repozo="${tidstorage:repozo-binary}"
EXIT_CODE=0
EXIT_CODE=0
{% for family, zodb in
zodb_dict.iteritems(
) -%}
{% for family, zodb in
six.iteritems(zodb_dict
) -%}
{% for name, zodb in zodb -%}
{% for name, zodb in zodb -%}
{% set zeo_section_name = 'zeo-' ~ family %}
{% set zeo_section_name = 'zeo-' ~ family %}
storage_name="{{ name }}"
storage_name="{{ name }}"
...
@@ -209,7 +209,7 @@ tidstorage = {{ tidstorage_repozo_path }}
...
@@ -209,7 +209,7 @@ tidstorage = {{ tidstorage_repozo_path }}
[monitor-instance-parameter]
[monitor-instance-parameter]
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ next
_port(
) }}
monitor-httpd-port = {{ next
(ports
) }}
monitor-title = {{ slapparameter_dict['name'] }}
monitor-title = {{ slapparameter_dict['name'] }}
password = {{ slapparameter_dict['monitor-passwd'] }}
password = {{ slapparameter_dict['monitor-passwd'] }}
...
...
stack/erp5/instance-zodb-base.cfg.in
View file @
d64893e5
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
{% set zodb_dict = slapparameter_dict['zodb-dict'] -%}
{% set zodb_dict = slapparameter_dict['zodb-dict'] -%}
{% set zeo_dict = slapparameter_dict.get('zodb-zeo', {}) -%}
{% set zeo_dict = slapparameter_dict.get('zodb-zeo', {}) -%}
{% for name, zodb in
zodb_dict.iteritems(
) -%}
{% for name, zodb in
six.iteritems(zodb_dict
) -%}
{% set storage_dict = zodb.setdefault('storage-dict', {}) -%}
{% set storage_dict = zodb.setdefault('storage-dict', {}) -%}
{% if zodb['type'] == 'zeo' -%}
{% if zodb['type'] == 'zeo' -%}
{% do storage_dict.update(zeo_dict.get(name, ())) -%}
{% do storage_dict.update(zeo_dict.get(name, ())) -%}
...
...
stack/erp5/instance-zope.cfg.in
View file @
d64893e5
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
{% set wsgi = slapparameter_dict['wsgi'] -%}
{% set wsgi = slapparameter_dict['wsgi'] -%}
{% set webdav = slapparameter_dict['webdav'] -%}
{% set webdav = slapparameter_dict['webdav'] -%}
{% set use_ipv6 = slapparameter_dict.get('use-ipv6', False) -%}
{% set use_ipv6 = slapparameter_dict.get('use-ipv6', False) -%}
{% set
next_port = itertools.count(slapparameter_dict['port-base']).next
-%}
{% set
ports = itertools.count(slapparameter_dict['port-base'])
-%}
{% set site_id = slapparameter_dict['site-id'] -%}
{% set site_id = slapparameter_dict['site-id'] -%}
{% set instance_index_list = range(slapparameter_dict['instance-count']) -%}
{% set instance_index_list = range(slapparameter_dict['instance-count']) -%}
{% set node_id_base = slapparameter_dict['name'] -%}
{% set node_id_base = slapparameter_dict['name'] -%}
...
@@ -36,14 +36,14 @@ partition. No more (undefined result), no less (IndexError).
...
@@ -36,14 +36,14 @@ partition. No more (undefined result), no less (IndexError).
('erp5-cloudooo', slapparameter_dict['cloudooo-url']),
('erp5-cloudooo', slapparameter_dict['cloudooo-url']),
('erp5-smtp', slapparameter_dict['smtp-url']),
('erp5-smtp', slapparameter_dict['smtp-url']),
) -%}
) -%}
{% set parsed_url = urlparse.urlparse(url) -%}
{% set parsed_url = url
lib_
parse.urlparse(url) -%}
{% do port_dict.__setitem__(alias, parsed_url.port) -%}
{% do port_dict.__setitem__(alias, parsed_url.port) -%}
{% do publishable_hosts_dict.__setitem__(alias, parsed_url.hostname) -%}
{% do publishable_hosts_dict.__setitem__(alias, parsed_url.hostname) -%}
{%- endfor %}
{%- endfor %}
{% for i, url in enumerate(slapparameter_dict['mysql-url-list']) -%}
{% for i, url in enumerate(slapparameter_dict['mysql-url-list']) -%}
{% do publishable_hosts_dict.__setitem__(
{% do publishable_hosts_dict.__setitem__(
'erp5-catalog-' ~ i,
'erp5-catalog-' ~ i,
urlparse.urlparse(url).hostname,
url
lib_
parse.urlparse(url).hostname,
) -%}
) -%}
{%- endfor %}
{%- endfor %}
{% do publishable_hosts_dict.update(slapparameter_dict['hosts-dict']) -%}
{% do publishable_hosts_dict.update(slapparameter_dict['hosts-dict']) -%}
...
@@ -202,7 +202,7 @@ environment =
...
@@ -202,7 +202,7 @@ environment =
command-line = '${userhosts-bin:rendered}' ${:wrapped-command-line}
command-line = '${userhosts-bin:rendered}' ${:wrapped-command-line}
{# Hack to deploy SSL certs via instance parameters -#}
{# Hack to deploy SSL certs via instance parameters -#}
{% for zodb in
zodb_dict.itervalues(
) -%}
{% for zodb in
six.itervalues(zodb_dict
) -%}
{% set storage_dict = zodb.setdefault('storage-dict', {}) -%}
{% set storage_dict = zodb.setdefault('storage-dict', {}) -%}
{% if zodb['type'] == 'neo' and storage_dict.get('ssl', 1) -%}
{% if zodb['type'] == 'neo' and storage_dict.get('ssl', 1) -%}
{% for k, v in (('_ca', 'ca.crt'),
{% for k, v in (('_ca', 'ca.crt'),
...
@@ -243,7 +243,7 @@ file-list = {{ parameter_dict['site-zcml'] }}
...
@@ -243,7 +243,7 @@ file-list = {{ parameter_dict['site-zcml'] }}
[{{ section('zope-inituser') }}]
[{{ section('zope-inituser') }}]
< = jinja2-template-base
< = jinja2-template-base
rendered = ${directory:instance}/inituser
rendered = ${directory:instance}/inituser
template = inline:{{ slapparameter_dict['inituser-login'] }}:{SHA}{{
hashlib.sha1(slapparameter_dict['inituser-password']).digest().encode('base64').rstrip(
) }}
template = inline:{{ slapparameter_dict['inituser-login'] }}:{SHA}{{
base64.b64encode(hashlib.sha1(slapparameter_dict['inituser-password'].encode('utf-8')).digest()
) }}
mode = 600
mode = 600
once = ${:rendered}_done
once = ${:rendered}_done
...
@@ -253,7 +253,7 @@ site-id = {{ site_id }}
...
@@ -253,7 +253,7 @@ site-id = {{ site_id }}
{% if site_id -%}
{% if site_id -%}
mysql-url = {{ slapparameter_dict['mysql-url-list'][0] }}
mysql-url = {{ slapparameter_dict['mysql-url-list'][0] }}
inituser = {{ slapparameter_dict['inituser-login'] }}
inituser = {{ slapparameter_dict['inituser-login'] }}
{% set mysql = urlparse.urlsplit(slapparameter_dict['mysql-url-list'][0]) -%}
{% set mysql = url
lib_
parse.urlsplit(slapparameter_dict['mysql-url-list'][0]) -%}
{% set mysql_db = mysql.path.split('/')[1] -%}
{% set mysql_db = mysql.path.split('/')[1] -%}
sql-connection-string = {{ '%s@erp5-catalog-0:%s %s %s' % (
sql-connection-string = {{ '%s@erp5-catalog-0:%s %s %s' % (
mysql_db, mysql.port, mysql.username, mysql.password) }}
mysql_db, mysql.port, mysql.username, mysql.password) }}
...
@@ -264,7 +264,7 @@ home = ${buildout:directory}
...
@@ -264,7 +264,7 @@ home = ${buildout:directory}
# We only want to change the hostname to 'erp5-cloudooo' if we use the internal
# We only want to change the hostname to 'erp5-cloudooo' if we use the internal
# cloudooo. We plan to remove the ability to have an internal one, so this
# cloudooo. We plan to remove the ability to have an internal one, so this
# heuristic is enough.
# heuristic is enough.
{% set cloudooo = urlparse.urlsplit(slapparameter_dict['cloudooo-url']) -%}
{% set cloudooo = url
lib_
parse.urlsplit(slapparameter_dict['cloudooo-url']) -%}
cloudooo-url = {{ (cloudooo if cloudooo.port == None else
cloudooo-url = {{ (cloudooo if cloudooo.port == None else
cloudooo._replace(netloc='erp5-cloudooo:%s' % cloudooo.port)).geturl() }}
cloudooo._replace(netloc='erp5-cloudooo:%s' % cloudooo.port)).geturl() }}
...
@@ -317,7 +317,7 @@ z2-log = ${directory:log}/{{ name }}-Z2.log
...
@@ -317,7 +317,7 @@ z2-log = ${directory:log}/{{ name }}-Z2.log
node-id = {{ dumps(node_id_base ~ (node_id_index_format % index)) }}
node-id = {{ dumps(node_id_base ~ (node_id_index_format % index)) }}
{% set log_list = [] -%}
{% set log_list = [] -%}
{% set import_set = set() -%}
{% set import_set = set() -%}
{% for db_name, zodb in
zodb_dict.iteritems(
) -%}
{% for db_name, zodb in
six.iteritems(zodb_dict
) -%}
{% do zodb.setdefault('pool-size', thread_amount) -%}
{% do zodb.setdefault('pool-size', thread_amount) -%}
{% if zodb['type'] == 'neo' -%}
{% if zodb['type'] == 'neo' -%}
{% do import_set.add('neo.client') -%}
{% do import_set.add('neo.client') -%}
...
@@ -358,11 +358,17 @@ hash-existing-files =
...
@@ -358,11 +358,17 @@ hash-existing-files =
${buildout:directory}/software_release/buildout.cfg
${buildout:directory}/software_release/buildout.cfg
[{{ section("promise-" ~ name) }}]
[{{ section("promise-" ~ name) }}]
{% if six.PY3 -%}
# Disable the promise in Python 3. ERP5 is not compatible with Python 3 yet, so
# the promise would always fail.
recipe =
{% else -%}
<= monitor-promise-base
<= monitor-promise-base
promise = check_socket_listening
promise = check_socket_listening
name = {{ name }}.py
name = {{ name }}.py
config-host = {{ ipv4 }}
config-host = {{ ipv4 }}
config-port = {{ port }}
config-port = {{ port }}
{% endif -%}
{% if use_ipv6 -%}
{% if use_ipv6 -%}
[{{ zope_tunnel_section_name }}]
[{{ zope_tunnel_section_name }}]
...
@@ -402,7 +408,7 @@ post = test ! -s {{ '${' ~ conf_parameter_name ~ ':pid-file}' }} || {{ bin_direc
...
@@ -402,7 +408,7 @@ post = test ! -s {{ '${' ~ conf_parameter_name ~ ':pid-file}' }} || {{ bin_direc
{% for i in instance_index_list -%}
{% for i in instance_index_list -%}
{{ zope(
{{ zope(
i,
i,
next
_port(
),
next
(ports
),
slapparameter_dict['longrequest-logger-timeout'],
slapparameter_dict['longrequest-logger-timeout'],
slapparameter_dict['longrequest-logger-interval'],
slapparameter_dict['longrequest-logger-interval'],
) }}
) }}
...
@@ -420,7 +426,7 @@ wrapper-path = ${buildout:bin-directory}/${:_buildout_section_name_}
...
@@ -420,7 +426,7 @@ wrapper-path = ${buildout:bin-directory}/${:_buildout_section_name_}
{% if test_runner_enabled and test_runner_node_count -%}
{% if test_runner_enabled and test_runner_node_count -%}
{% for _ in range(test_runner_node_count) %}
{% for _ in range(test_runner_node_count) %}
{% do test_runner_address_list.append((ipv4, next
_port(
))) %}
{% do test_runner_address_list.append((ipv4, next
(ports
))) %}
{% endfor %}
{% endfor %}
{% if selenium_server_configuration_dict -%}
{% if selenium_server_configuration_dict -%}
...
@@ -454,7 +460,7 @@ wrapper-path = ${buildout:bin-directory}/runTestSuite
...
@@ -454,7 +460,7 @@ wrapper-path = ${buildout:bin-directory}/runTestSuite
{% set connection_string_list = [] -%}
{% set connection_string_list = [] -%}
{% for url in slapparameter_dict['mysql-test-url-list'] -%}
{% for url in slapparameter_dict['mysql-test-url-list'] -%}
{% set parsed_url = urlparse.urlparse(url) -%}
{% set parsed_url = url
lib_
parse.urlparse(url) -%}
{% do connection_string_list.append(
{% do connection_string_list.append(
'%s@%s:%s %s %s' % (
'%s@%s:%s %s %s' % (
parsed_url.path.lstrip('/'),
parsed_url.path.lstrip('/'),
...
@@ -563,7 +569,7 @@ software-release-url = ${slap-connection:software-release-url}
...
@@ -563,7 +569,7 @@ software-release-url = ${slap-connection:software-release-url}
[monitor-instance-parameter]
[monitor-instance-parameter]
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ next
_port(
) }}
monitor-httpd-port = {{ next
(ports
) }}
monitor-title = {{ slapparameter_dict['name'] }}
monitor-title = {{ slapparameter_dict['name'] }}
password = {{ slapparameter_dict['monitor-passwd'] }}
password = {{ slapparameter_dict['monitor-passwd'] }}
...
...
stack/erp5/instance.cfg.in
View file @
d64893e5
...
@@ -50,7 +50,7 @@ extra-context =
...
@@ -50,7 +50,7 @@ extra-context =
key local_bt5_repository dynamic-template-erp5-parameters:local-bt5-repository
key local_bt5_repository dynamic-template-erp5-parameters:local-bt5-repository
key openssl_location :openssl-location
key openssl_location :openssl-location
import re re
import re re
import url
parse url
parse
import url
lib_parse six.moves.urllib.
parse
import-list =
import-list =
file root_common context:root-common
file root_common context:root-common
file caucase context:caucase-jinja2-library
file caucase context:caucase-jinja2-library
...
@@ -80,6 +80,7 @@ extra-context =
...
@@ -80,6 +80,7 @@ extra-context =
section parameter_dict dynamic-template-balancer-parameters
section parameter_dict dynamic-template-balancer-parameters
import itertools itertools
import itertools itertools
import hashlib hashlib
import hashlib hashlib
import functools functools
import-list =
import-list =
file caucase context:caucase-jinja2-library
file caucase context:caucase-jinja2-library
...
@@ -125,7 +126,8 @@ extra-context =
...
@@ -125,7 +126,8 @@ extra-context =
key buildout_directory buildout:directory
key buildout_directory buildout:directory
key root_common context:root-common
key root_common context:root-common
section parameter_dict dynamic-template-zope-parameters
section parameter_dict dynamic-template-zope-parameters
import urlparse urlparse
import base64 base64
import urllib_parse six.moves.urllib.parse
import hashlib hashlib
import hashlib hashlib
import itertools itertools
import itertools itertools
import json json
import json json
...
...
stack/erp5/my.cnf.in
View file @
d64893e5
...
@@ -76,9 +76,8 @@ relay-log = mariadb-relay-bin
...
@@ -76,9 +76,8 @@ relay-log = mariadb-relay-bin
{{x}}innodb_doublewrite = 0
{{x}}innodb_doublewrite = 0
{{x}}sync_frm = 0
{{x}}sync_frm = 0
# Force utf8 usage
character_set_server = {{ parameter_dict['character-set-server'] }}
character_set_server = utf8mb4
collation_server = {{ parameter_dict['collation-server'] }}
collation_server = utf8mb4_general_ci
skip_character_set_client_handshake
skip_character_set_client_handshake
{% if 'ssl-key' in parameter_dict -%}
{% if 'ssl-key' in parameter_dict -%}
...
...
stack/erp5/run-zelenium-test.py.in
View file @
d64893e5
...
@@ -64,7 +64,7 @@ def main():
...
@@ -64,7 +64,7 @@ def main():
if response.code == 200:
if response.code == 200:
static_dict = json.loads(response.read())
static_dict = json.loads(response.read())
activity_list = []
activity_list = []
for _, value in s
tatic_dict.iteritems(
):
for _, value in s
ix.iteritems(static_dict
):
activity_list += value['line_list']
activity_list += value['line_list']
if len(activity_list) == 0:
if len(activity_list) == 0:
break
break
...
@@ -181,7 +181,7 @@ def main():
...
@@ -181,7 +181,7 @@ def main():
try:
try:
test_result = tool.createTestResult(revision = revision,
test_result = tool.createTestResult(revision = revision,
test_name_list =
test_line_dict.keys(
),
test_name_list =
list(test_line_dict
),
node_title = args.test_node_title,
node_title = args.test_node_title,
test_title = test_suite_title,
test_title = test_suite_title,
project_title = args.project_title)
project_title = args.project_title)
...
...
stack/erp5/site.zcml
View file @
d64893e5
...
@@ -21,6 +21,6 @@
...
@@ -21,6 +21,6 @@
<securityPolicy
<securityPolicy
component="
Products.Five.security.Five
SecurityPolicy" />
component="
AccessControl.security.
SecurityPolicy" />
</configure>
</configure>
stack/erp5/zope.conf.in
View file @
d64893e5
...
@@ -153,17 +153,17 @@ large-file-threshold {{ parameter_dict['large-file-threshold'] }}
...
@@ -153,17 +153,17 @@ large-file-threshold {{ parameter_dict['large-file-threshold'] }}
%import {{ m }}
%import {{ m }}
{% endfor -%}
{% endfor -%}
{% set type_dict = {'neo': 'NEOStorage', 'zeo': 'zeoclient'} %}
{% set type_dict = {'neo': 'NEOStorage', 'zeo': 'zeoclient'} %}
{% for name, zodb_dict in
parameter_dict['zodb-dict'].iteritems(
) %}
{% for name, zodb_dict in
six.iteritems(parameter_dict['zodb-dict']
) %}
<zodb_db {{ name }}>
<zodb_db {{ name }}>
{%- set storage_type = type_dict[zodb_dict.pop('type')] %}
{%- set storage_type = type_dict[zodb_dict.pop('type')] %}
{%- set storage_dict = zodb_dict.pop('storage-dict') %}
{%- set storage_dict = zodb_dict.pop('storage-dict') %}
{%- do root_common.apply_overrides(zodb_dict, node_id) %}
{%- do root_common.apply_overrides(zodb_dict, node_id) %}
{%- for key, value in
zodb_dict.iteritems(
) %}
{%- for key, value in
six.iteritems(zodb_dict
) %}
{{ key }} {{ value }}
{{ key }} {{ value }}
{%- endfor %}
{%- endfor %}
<{{ storage_type }}>
<{{ storage_type }}>
{%- do root_common.apply_overrides(storage_dict, node_id) %}
{%- do root_common.apply_overrides(storage_dict, node_id) %}
{%- for key, value in s
torage_dict.iteritems(
) %}
{%- for key, value in s
ix.iteritems(storage_dict
) %}
{{ key }} {{ value }}
{{ key }} {{ value }}
{%- endfor %}
{%- endfor %}
</{{ storage_type }}>
</{{ storage_type }}>
...
...
stack/monitor/buildout.cfg
View file @
d64893e5
...
@@ -8,6 +8,7 @@ extends =
...
@@ -8,6 +8,7 @@ extends =
../../component/openssl/buildout.cfg
../../component/openssl/buildout.cfg
../../component/lxml-python/buildout.cfg
../../component/lxml-python/buildout.cfg
../../component/python-cryptography/buildout.cfg
../../component/python-cryptography/buildout.cfg
../../component/randomsleep/buildout.cfg
../../stack/logrotate/buildout.cfg
../../stack/logrotate/buildout.cfg
../../stack/slapos.cfg
../../stack/slapos.cfg
...
@@ -65,6 +66,7 @@ rendered = ${buildout:directory}/template-monitor.cfg
...
@@ -65,6 +66,7 @@ rendered = ${buildout:directory}/template-monitor.cfg
context =
context =
key apache_location apache:location
key apache_location apache:location
key template_logrotate_base template-logrotate-base:rendered
key template_logrotate_base template-logrotate-base:rendered
key randomsleep randomsleep:output
raw monitor_bin ${buildout:bin-directory}/monitor.bootstrap
raw monitor_bin ${buildout:bin-directory}/monitor.bootstrap
raw monitor_collect ${buildout:bin-directory}/monitor.collect
raw monitor_collect ${buildout:bin-directory}/monitor.collect
raw monitor_statistic ${buildout:bin-directory}/monitor.statistic
raw monitor_statistic ${buildout:bin-directory}/monitor.statistic
...
...
stack/monitor/buildout.hash.cfg
View file @
d64893e5
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
# not need these here).
# not need these here).
[monitor2-template]
[monitor2-template]
filename = instance-monitor.cfg.jinja2.in
filename = instance-monitor.cfg.jinja2.in
md5sum =
3cba541a8b0b22c2648848ed1d25917
4
md5sum =
fb10eabe010d136764365c7df299381
4
[monitor-httpd-conf]
[monitor-httpd-conf]
_update_hash_filename_ = templates/monitor-httpd.conf.in
_update_hash_filename_ = templates/monitor-httpd.conf.in
...
...
stack/monitor/instance-monitor.cfg.jinja2.in
View file @
d64893e5
...
@@ -250,7 +250,7 @@ recipe = slapos.cookbook:cron.d
...
@@ -250,7 +250,7 @@ recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries}
cron-entries = ${cron:cron-entries}
name = monitor-globalstate
name = monitor-globalstate
frequency = */2 * * * *
frequency = */2 * * * *
command = {{
bin_directory }}/randomsleep
20 && ${monitor-globalstate-wrapper:wrapper-path}
command = {{
randomsleep }}
20 && ${monitor-globalstate-wrapper:wrapper-path}
[monitor-globalstate-first-run]
[monitor-globalstate-first-run]
recipe = plone.recipe.command
recipe = plone.recipe.command
...
@@ -262,14 +262,14 @@ recipe = slapos.cookbook:cron.d
...
@@ -262,14 +262,14 @@ recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries}
cron-entries = ${cron:cron-entries}
name = monitor-configurator
name = monitor-configurator
frequency = * * * * *
frequency = * * * * *
command = {{
bin_directory }}/randomsleep
10 && ${monitor-configurator-wrapper:wrapper-path}
command = {{
randomsleep }}
10 && ${monitor-configurator-wrapper:wrapper-path}
[monitor-collect-cron-entry]
[monitor-collect-cron-entry]
recipe = slapos.cookbook:cron.d
recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries}
cron-entries = ${cron:cron-entries}
name = monitor_collect
name = monitor_collect
frequency = * * * * *
frequency = * * * * *
command = {{
bin_directory }}/randomsleep
40 && ${monitor-collect-wrapper:wrapper-path}
command = {{
randomsleep }}
40 && ${monitor-collect-wrapper:wrapper-path}
[logrotate-entry-monitor-data]
[logrotate-entry-monitor-data]
recipe = collective.recipe.template
recipe = collective.recipe.template
...
...
stack/slapos.cfg
View file @
d64893e5
...
@@ -132,7 +132,7 @@ eggs =
...
@@ -132,7 +132,7 @@ eggs =
[versions]
[versions]
setuptools = 44.1.1
setuptools = 44.1.1
# Use SlapOS patched zc.buildout
# Use SlapOS patched zc.buildout
zc.buildout = 2.7.1+slapos01
5
zc.buildout = 2.7.1+slapos01
6
# Use SlapOS patched zc.recipe.egg (zc.recipe.egg 2.x is for Buildout 2)
# Use SlapOS patched zc.recipe.egg (zc.recipe.egg 2.x is for Buildout 2)
zc.recipe.egg = 2.0.3+slapos003
zc.recipe.egg = 2.0.3+slapos003
...
@@ -190,14 +190,14 @@ setuptools-dso = 1.7
...
@@ -190,14 +190,14 @@ setuptools-dso = 1.7
rubygemsrecipe = 0.4.3
rubygemsrecipe = 0.4.3
six = 1.12.0
six = 1.12.0
slapos.cookbook = 1.0.226
slapos.cookbook = 1.0.226
slapos.core = 1.7.
2
slapos.core = 1.7.
3
slapos.extension.strip = 0.4
slapos.extension.strip = 0.4
slapos.extension.shared = 1.0
slapos.extension.shared = 1.0
slapos.libnetworkcache = 0.22
slapos.libnetworkcache = 0.22
slapos.rebootstrap = 4.5
slapos.rebootstrap = 4.5
slapos.recipe.build = 0.5
3
slapos.recipe.build = 0.5
4
slapos.recipe.cmmi = 0.19
slapos.recipe.cmmi = 0.19
slapos.recipe.template =
4.6
slapos.recipe.template =
5.0
slapos.toolbox = 0.126
slapos.toolbox = 0.126
stevedore = 1.21.0:whl
stevedore = 1.21.0:whl
subprocess32 = 3.5.4
subprocess32 = 3.5.4
...
...
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