Commit f082ad99 authored by Jérome Perrin's avatar Jérome Perrin

Merge remote-tracking branch 'origin/master' into zope4py2

parents 3a9d4875 1bd45353
...@@ -60,17 +60,16 @@ eggs += ...@@ -60,17 +60,16 @@ eggs +=
# env.sh for ZODB's python to be on $PATH. # env.sh for ZODB's python to be on $PATH.
[ZODB-env.sh] [ZODB-env.sh]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:directory}/${:_buildout_section_name_} output = ${buildout:directory}/${:_buildout_section_name_}
template = inline: inline =
export PS1="(ZODB-env) $PS1" export PS1="(ZODB-env) $PS1"
export PATH=${buildout:bin-directory}:$PATH export PATH=${buildout:bin-directory}:$PATH
# .nxdtest to run ZODB tests # .nxdtest to run ZODB tests
[.nxdtest] [.nxdtest]
<= jinja2-template <= jinja2-template
template = inline =
inline:
# determine where ZODB & friends were installed # determine where ZODB & friends were installed
from subprocess import check_output from subprocess import check_output
where = check_output(['python', '-c', """if 1: where = check_output(['python', '-c', """if 1:
...@@ -99,12 +98,12 @@ template = ...@@ -99,12 +98,12 @@ template =
# instance to run nxdtest. # instance to run nxdtest.
[instance.cfg] [instance.cfg]
<= jinja2-template <= jinja2-template
template = inline: inline =
[buildout] [buildout]
extends = ${nxdtest-instance.cfg:rendered} extends = ${nxdtest-instance.cfg:output}
[runTestSuite] [runTestSuite]
env.sh = ${ZODB-env.sh:rendered} env.sh = ${ZODB-env.sh:output}
workdir = ${buildout:directory} workdir = ${buildout:directory}
......
...@@ -18,8 +18,8 @@ md5sum = e5f4b1d997e50ffe4998c68c8ec45403 ...@@ -18,8 +18,8 @@ md5sum = e5f4b1d997e50ffe4998c68c8ec45403
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
filename = bazel_tools_cpp_CROSSTOOL filename = bazel_tools_cpp_CROSSTOOL
template = ${:_profile_base_location_}/${:filename}.in url = ${:_profile_base_location_}/${:filename}.in
rendered = ${:location}/${:filename} output = ${:location}/${:filename}
context = context =
key gcc_location gcc:prefix key gcc_location gcc:prefix
key binutils_location binutils:location key binutils_location binutils:location
...@@ -28,8 +28,8 @@ context = ...@@ -28,8 +28,8 @@ context =
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
filename = bazel_src_main_cpp_BUILD filename = bazel_src_main_cpp_BUILD
template = ${:_profile_base_location_}/${:filename}.in url = ${:_profile_base_location_}/${:filename}.in
rendered = ${:location}/${:filename} output = ${:location}/${:filename}
# We previously passed an argument that we don't want anymore. Rather than # We previously passed an argument that we don't want anymore. Rather than
# changing templates, we pass a dummy argument that will have no effect. # changing templates, we pass a dummy argument that will have no effect.
linkopts = -DSLAPOS_DUMMY= linkopts = -DSLAPOS_DUMMY=
...@@ -50,10 +50,10 @@ url = https://github.com/bazelbuild/bazel/releases/download/0.6.1/bazel-0.6.1-di ...@@ -50,10 +50,10 @@ url = https://github.com/bazelbuild/bazel/releases/download/0.6.1/bazel-0.6.1-di
md5sum = 8c5c827e33d3ff74c263c1299810b485 md5sum = 8c5c827e33d3ff74c263c1299810b485
patch-binary = ${patch:location}/bin/patch patch-binary = ${patch:location}/bin/patch
patch-file-path = ${:_profile_base_location_}/bazel-0.6.1.patch patch-file-path = ${:_profile_base_location_}/bazel-0.6.1.patch
bazel-crosstool-modified-file-path = ${template-bazel-crosstool:rendered} bazel-crosstool-modified-file-path = ${template-bazel-crosstool:output}
bazel-src-main-cpp-build-path = ${template-bazel-src-main-cpp-build:rendered} bazel-src-main-cpp-build-path = ${template-bazel-src-main-cpp-build:output}
bazel-src-main-tools-build-path = ${template-bazel-src-main-tools-build:rendered} bazel-src-main-tools-build-path = ${template-bazel-src-main-tools-build:output}
bazel-src-tools-singlejar-build-path = ${template-bazel-src-tools-singlejar-build:rendered} bazel-src-tools-singlejar-build-path = ${template-bazel-src-tools-singlejar-build:output}
unzip-bin = ${unzip:location}/bin unzip-bin = ${unzip:location}/bin
zip-bin = ${zip:location}/bin zip-bin = ${zip:location}/bin
java_home = ${zulu:location} java_home = ${zulu:location}
......
[buildout] [buildout]
extends = extends =
../autoconf/buildout.cfg
../automake/buildout.cfg
../m4/buildout.cfg ../m4/buildout.cfg
../patch/buildout.cfg ../patch/buildout.cfg
../perl/buildout.cfg ../perl/buildout.cfg
...@@ -16,7 +14,15 @@ url = https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz ...@@ -16,7 +14,15 @@ url = https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz
md5sum = c28f119f405a2304ff0a7ccdcc629713 md5sum = c28f119f405a2304ff0a7ccdcc629713
environment = environment =
M4=${m4:location}/bin/m4 M4=${m4:location}/bin/m4
PATH=${autoconf:location}/bin:${automake:location}/bin:${patch:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${patch:location}/bin:${perl:location}/bin:${xz-utils:location}/bin:%(PATH)s
patch-options = -p1 patch-options = -p1
patches = patches =
${:_profile_base_location_}/01_inhibit_example_generation#ee2df22601a56d738939fa760f9dc19b ${:_profile_base_location_}/01_inhibit_example_generation#ee2df22601a56d738939fa760f9dc19b
# Make sure that Makefile.in is not older that the other file that is modified
# by the above patch, otherwise `make` would invoke automake, which is likely
# to fail with an error like:
# This is Automake 1.16.5, but the definition used by this AM_INIT_AUTOMAKE
# comes from Automake 1.16.4.
# Without such pre-configure, the 2 files usually have the same modification
# date because machines are fast, but not always.
pre-configure = touch Makefile.in
...@@ -28,9 +28,9 @@ git-executable = ${git:location}/bin/git ...@@ -28,9 +28,9 @@ git-executable = ${git:location}/bin/git
[cythonplus_env.sh] [cythonplus_env.sh]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = ${buildout:directory}/${:_buildout_section_name_} output = ${buildout:directory}/${:_buildout_section_name_}
template = inline =
inline:{% set path, python = os.path.split(python) -%} {% set path, python = os.path.split(python) -%}
{% if 'part' in gcc -%} {% if 'part' in gcc -%}
{% set path = path + ':' + gcc.prefix + '/bin' -%} {% set path = path + ':' + gcc.prefix + '/bin' -%}
{% endif -%} {% endif -%}
......
...@@ -31,7 +31,7 @@ part = firefox ...@@ -31,7 +31,7 @@ part = firefox
recipe = slapos.recipe.build recipe = slapos.recipe.build
location = ${buildout:bin-directory}/${:part} location = ${buildout:bin-directory}/${:part}
fonts-conf = ${firefox-default-fonts-conf:rendered} fonts-conf = ${firefox-default-fonts-conf:output}
init = init =
self.buildout[options['part']] self.buildout[options['part']]
install = install =
...@@ -72,8 +72,8 @@ part = firefox-52 ...@@ -72,8 +72,8 @@ part = firefox-52
[firefox-default-fonts-conf] [firefox-default-fonts-conf]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${template-fonts-conf:output} url = ${template-fonts-conf:output}
rendered = ${buildout:parts-directory}/${:_buildout_section_name_}/fonts.conf output = ${buildout:parts-directory}/${:_buildout_section_name_}/fonts.conf
context = context =
key cachedir :cache-dir key cachedir :cache-dir
key fonts :fonts key fonts :fonts
......
...@@ -60,7 +60,8 @@ environment = ...@@ -60,7 +60,8 @@ environment =
DBUS_GLIB_CFLAGS=-I${dbus-glib:location}/include/dbus-1.0 DBUS_GLIB_CFLAGS=-I${dbus-glib:location}/include/dbus-1.0
DBUS_GLIB_LIBS=-L${dbus-glib:location}/lib -ldbus-glib-1 DBUS_GLIB_LIBS=-L${dbus-glib:location}/lib -ldbus-glib-1
CPPFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include CPPFLAGS=-I${glib:location}/include/glib-2.0 -I${glib:location}/lib/glib-2.0/include
LDFLAGS=-L${glib:location}/lib -Wl,-rpath=${glib:location}/lib LDFLAGS=-L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib
PYTHON=${buildout:executable}
[gobject-introspection] [gobject-introspection]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -79,6 +80,7 @@ environment = ...@@ -79,6 +80,7 @@ environment =
FFI_CFLAGS=-I${libffi:location}/include FFI_CFLAGS=-I${libffi:location}/include
FFI_LIBS=-L${libffi:location}/lib -Wl,-rpath=${libffi:location}/lib -lffi FFI_LIBS=-L${libffi:location}/lib -Wl,-rpath=${libffi:location}/lib -lffi
GIR_DIR=${buildout:parts-directory}/${:_buildout_section_name_}/share/gir-1.0 GIR_DIR=${buildout:parts-directory}/${:_buildout_section_name_}/share/gir-1.0
PYTHON=${buildout:executable}
[pygobject3] [pygobject3]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -101,6 +103,7 @@ environment = ...@@ -101,6 +103,7 @@ environment =
GIO_LIBS=-L${glib:location}/lib -lgio-2.0 GIO_LIBS=-L${glib:location}/lib -lgio-2.0
GI_CFLAGS=-I${gobject-introspection:location}/include/gobject-introspection-1.0 GI_CFLAGS=-I${gobject-introspection:location}/include/gobject-introspection-1.0
GI_LIBS=-L${gobject-introspection:location}/lib -lgirepository-1.0 GI_LIBS=-L${gobject-introspection:location}/lib -lgirepository-1.0
PYTHON=${buildout:executable}
[trusted-config] [trusted-config]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
...@@ -114,13 +117,13 @@ python = ${buildout:bin-directory}/${firewalld-eggs:interpreter} ...@@ -114,13 +117,13 @@ python = ${buildout:bin-directory}/${firewalld-eggs:interpreter}
stop-on-error = True stop-on-error = True
command = command =
set -e set -e
sed -i 's#python2.7#${:python}#' ${firewalld:location}/bin/firewall-applet sed -i 's#python3#${:python}#' ${firewalld:location}/bin/firewall-applet
sed -i 's#python2.7#${:python}#' ${firewalld:location}/bin/firewall-cmd sed -i 's#python3#${:python}#' ${firewalld:location}/bin/firewall-cmd
sed -i 's#python2.7#${:python}#' ${firewalld:location}/bin/firewall-config sed -i 's#python3#${:python}#' ${firewalld:location}/bin/firewall-config
sed -i 's#python2.7#${:python}#' ${firewalld:location}/bin/firewall-offline-cmd sed -i 's#python3#${:python}#' ${firewalld:location}/bin/firewall-offline-cmd
sed -i 's#python2.7#${:python}#' ${firewalld:location}/${firewalld:sbin-dir}/firewalld sed -i 's#python3#${:python}#' ${firewalld:location}/${firewalld:sbin-dir}/firewalld
sed -i 's#python2.7 /usr/bin/firewall-config#${:python} ${firewalld:location}/bin/firewall-config#' ${firewalld:etc-dir}/lockdown-whitelist.xml sed -i 's#python3 /usr/bin/firewall-config#${:python} ${firewalld:location}/bin/firewall-config#' ${firewalld:etc-dir}/lockdown-whitelist.xml
sed -i 's#DefaultZone=public#DefaultZone=trusted#' ${firewalld:etc-dir}/firewalld.conf sed -i 's#DefaultZone=public#DefaultZone=trusted#' ${firewalld:etc-dir}/firewalld.conf
sed -i 's#FirewallBackend=nftables#FirewallBackend=iptables#' ${firewalld:etc-dir}/firewalld.conf sed -i 's#FirewallBackend=nftables#FirewallBackend=iptables#' ${firewalld:etc-dir}/firewalld.conf
......
...@@ -14,8 +14,8 @@ extends = ...@@ -14,8 +14,8 @@ extends =
[fish-shell] [fish-shell]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = true shared = true
url = https://github.com/fish-shell/fish-shell/releases/download/3.2.2/fish-3.2.2.tar.xz url = https://github.com/fish-shell/fish-shell/releases/download/3.4.1/fish-3.4.1.tar.xz
md5sum = 606253699ce41991b03a93bcc6047d51 md5sum = 80733d30a14ffa50bf48cce96296aa7a
configure-command = ${cmake:location}/bin/cmake configure-command = ${cmake:location}/bin/cmake
configure-options = configure-options =
-DCMAKE_INSTALL_PREFIX=${:location} -DCMAKE_INSTALL_PREFIX=${:location}
......
...@@ -119,10 +119,10 @@ environment-extra = ...@@ -119,10 +119,10 @@ environment-extra =
# #
# ${go:exe} is standalone executable that runs go in activated gowork environment. # ${go:exe} is standalone executable that runs go in activated gowork environment.
[go] [go]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
exe = ${buildout:bin-directory}/go exe = ${buildout:bin-directory}/go
rendered= ${:exe} output= ${:exe}
template= inline: inline =
#!/bin/sh -e #!/bin/sh -e
. ${gowork:env.sh} . ${gowork:env.sh}
exec go "$@" exec go "$@"
......
...@@ -132,11 +132,11 @@ promises = ...@@ -132,11 +132,11 @@ promises =
# as future-proof against new versions of Chromium. # as future-proof against new versions of Chromium.
[headless-chromium-wrapper] [headless-chromium-wrapper]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = inline =
inline:#!/bin/sh #!/bin/sh
export LD_LIBRARY_PATH="{{ nss_location }}/lib:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH="{{ nss_location }}/lib:$LD_LIBRARY_PATH"
exec {{ chromium_binary }} "$@" exec {{ chromium_binary }} "$@"
rendered = ${buildout:bin-directory}/headless-chromium output = ${buildout:bin-directory}/headless-chromium
context = context =
key nss_location nss:location key nss_location nss:location
key chromium_binary headless-chromium:binary key chromium_binary headless-chromium:binary
...@@ -34,12 +34,12 @@ install = ...@@ -34,12 +34,12 @@ install =
[helloweb-go] [helloweb-go]
# we already have gowork/bin/helloweb with helloweb Go build. # we already have gowork/bin/helloweb with helloweb Go build.
# Add bin/helloweb-go that runs go version of helloweb without any environment preset needed. # Add bin/helloweb-go that runs go version of helloweb without any environment preset needed.
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:bin-directory}/${:_buildout_section_name_} output = ${buildout:bin-directory}/${:_buildout_section_name_}
template = inline =
inline:#!/bin/sh -e #!/bin/sh -e
. ${gowork:env.sh} . ${gowork:env.sh}
exec helloweb "$@" exec helloweb "$@"
# -*- python -*- # -*- python -*-
...@@ -97,9 +97,9 @@ make-targets= ${bundler:bundle} install ...@@ -97,9 +97,9 @@ make-targets= ${bundler:bundle} install
[helloweb-ruby] [helloweb-ruby]
# NOTE slapos.cookbook:wrapper also works, but currently _only_ in instance # NOTE slapos.cookbook:wrapper also works, but currently _only_ in instance
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:bin-directory}/${:_buildout_section_name_} output = ${buildout:bin-directory}/${:_buildout_section_name_}
template = inline =
inline:#!/bin/sh -e #!/bin/sh -e
export BUNDLE_GEMFILE=${helloweb-ruby-bundle:path}/Gemfile export BUNDLE_GEMFILE=${helloweb-ruby-bundle:path}/Gemfile
exec ${bundler:bundle} exec sh -c 'helloweb.rb "$@"' ${:_buildout_section_name_} "$@" exec ${bundler:bundle} exec sh -c 'helloweb.rb "$@"' ${:_buildout_section_name_} "$@"
...@@ -40,8 +40,8 @@ url = ${:_profile_base_location_}/${:filename} ...@@ -40,8 +40,8 @@ url = ${:_profile_base_location_}/${:filename}
[instance-jupyter-notebook] [instance-jupyter-notebook]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
rendered = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
context = context =
key bin_directory buildout:bin-directory key bin_directory buildout:bin-directory
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
[instance-jupyter-notebook] [instance-jupyter-notebook]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 357f28614a13cdbf00a29a83cbfd2642 md5sum = 9f412363ce2c2ac99e3328f7d87d456d
[jupyter-notebook-config] [jupyter-notebook-config]
filename = jupyter_notebook_config.py.jinja filename = jupyter_notebook_config.py.jinja
......
...@@ -73,8 +73,8 @@ environment = ...@@ -73,8 +73,8 @@ environment =
[jupyter-notebook-config] [jupyter-notebook-config]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = {{ jupyter_config_location }}/{{ jupyter_config_filename }} url = {{ jupyter_config_location }}/{{ jupyter_config_filename }}
rendered = ${directory:jupyter_config_dir}/jupyter_notebook_config.py output = ${directory:jupyter_config_dir}/jupyter_notebook_config.py
context = context =
raw config_cfg ${buildout:directory}/knowledge0.cfg raw config_cfg ${buildout:directory}/knowledge0.cfg
...@@ -130,8 +130,8 @@ target-directory = ${directory:erp5_kernel_dir} ...@@ -130,8 +130,8 @@ target-directory = ${directory:erp5_kernel_dir}
[kernel-json] [kernel-json]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = {{ kernel_json_location }}/{{ kernel_json_filename }} url = {{ kernel_json_location }}/{{ kernel_json_filename }}
rendered = ${directory:erp5_kernel_dir}/kernel.json output = ${directory:erp5_kernel_dir}/kernel.json
# Use python2.7 executable bin file for kernel config # Use python2.7 executable bin file for kernel config
context = context =
raw python_executable {{ python_executable }} raw python_executable {{ python_executable }}
......
...@@ -12,8 +12,8 @@ parts = ...@@ -12,8 +12,8 @@ parts =
[matplotlibrc] [matplotlibrc]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
template = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
rendered = ${matplotlibrc:location}/matplotlibrc output = ${matplotlibrc:location}/matplotlibrc
backend = agg backend = agg
context = context =
key backend matplotlibrc:backend key backend matplotlibrc:backend
......
...@@ -49,4 +49,5 @@ configure-options = ...@@ -49,4 +49,5 @@ configure-options =
--enable-python --enable-python
--with-json --with-json
--without-cli --without-cli
--with-python-bin=${buildout:executable}
...@@ -21,20 +21,20 @@ eggs += ...@@ -21,20 +21,20 @@ eggs +=
# env.sh for interpreter to be on $PATH. # env.sh for interpreter to be on $PATH.
[nxdtest-env.sh] [nxdtest-env.sh]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:directory}/${:_buildout_section_name_} output = ${buildout:directory}/${:_buildout_section_name_}
template = inline: inline =
export PS1="(nxdtest-env) $PS1" export PS1="(nxdtest-env) $PS1"
export PATH=${buildout:bin-directory}:$PATH export PATH=${buildout:bin-directory}:$PATH
# instance to run nxdtest. # instance to run nxdtest.
[instance.cfg] [instance.cfg]
<= jinja2-template <= jinja2-template
template = inline: inline =
[buildout] [buildout]
extends = ${nxdtest-instance.cfg:rendered} extends = ${nxdtest-instance.cfg:output}
[runTestSuite] [runTestSuite]
env.sh = ${nxdtest-env.sh:rendered} env.sh = ${nxdtest-env.sh:output}
workdir = ${nxdtest-repository:location} workdir = ${nxdtest-repository:location}
...@@ -73,7 +73,7 @@ perl-PATH = ${:location}/bin/ ...@@ -73,7 +73,7 @@ perl-PATH = ${:location}/bin/
# dependencies # dependencies
perl-bin = ${:perl-PATH}/perl perl-bin = ${:perl-PATH}/perl
perl-PERL5LIB = perl-PERL5LIB =
# Implementation # Implementation
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
...@@ -117,12 +117,12 @@ perl_location = ${perl:location} ...@@ -117,12 +117,12 @@ perl_location = ${perl:location}
# - inc : colon (:) separated site perl of modules to include in @INC # - inc : colon (:) separated site perl of modules to include in @INC
# Outputs: # Outputs:
# - perl-bin : an executable perl # - perl-bin : an executable perl
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
template = inline: inline =
#!/bin/sh #!/bin/sh
{% set inc = "${:inc}".split(':') %} {# XXX we could remove duplicates from inc #} {% set inc = "${:inc}".split(':') %} {# XXX we could remove duplicates from inc #}
exec ${perl:location}/bin/perl \ exec ${perl:location}/bin/perl \
{% for item in inc -%}{% if item %} -I "{{ item }}" \ {% for item in inc -%}{% if item %} -I "{{ item }}" \
{% endif %}{% endfor %} "$@" {% endif %}{% endfor %} "$@"
rendered = ${buildout:bin-directory}/${:_buildout_section_name_} output = ${buildout:bin-directory}/${:_buildout_section_name_}
perl-bin = ${:rendered} perl-bin = ${:output}
...@@ -88,12 +88,10 @@ init = ...@@ -88,12 +88,10 @@ init =
# .X.pyprog is python program to start and run entry # .X.pyprog is python program to start and run entry
# it uses .X.pyexe as underlying python interpreter # it uses .X.pyexe as underlying python interpreter
[.%(name)s.pyprog] [.%(name)s.pyprog]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
exe = %(exe)s exe = %(exe)s
rendered= $${:exe} output= $${:exe}
mode = 755 inline =
template=
inline:
#!$${.%(name)s.pyexe:exe} #!$${.%(name)s.pyexe:exe}
import sys import sys
%(__pyinit)s %(__pyinit)s
......
...@@ -28,21 +28,21 @@ eggs = ${pygolang:egg} ...@@ -28,21 +28,21 @@ eggs = ${pygolang:egg}
# env.sh for pygolang's python/gpython to be on $PATH. # env.sh for pygolang's python/gpython to be on $PATH.
[pygolang-env.sh] [pygolang-env.sh]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:directory}/${:_buildout_section_name_} output = ${buildout:directory}/${:_buildout_section_name_}
template = inline: inline =
export PS1="(pygolang-env) $PS1" export PS1="(pygolang-env) $PS1"
export PATH=${buildout:bin-directory}:$PATH export PATH=${buildout:bin-directory}:$PATH
# instance to run nxdtest. # instance to run nxdtest.
[instance.cfg] [instance.cfg]
<= jinja2-template <= jinja2-template
template = inline: inline =
[buildout] [buildout]
extends = ${nxdtest-instance.cfg:rendered} extends = ${nxdtest-instance.cfg:output}
[runTestSuite] [runTestSuite]
env.sh = ${pygolang-env.sh:rendered} env.sh = ${pygolang-env.sh:output}
workdir = ${pygolang-repository:location} workdir = ${pygolang-repository:location}
......
commit cf5648658c87b6e3b2fa4394b5921792827246dc
Author: Bryce Guinta <bryce.paul.guinta@gmail.com>
Date: Sun Jan 7 14:28:42 2018 -0700
Fix submodule import in six.moves
This commit fixes import errors when modname
started with, but was not equal, to six.moves
---
astroid/brain/pysix_moves.py | 38 ++++++++++++++++++++++++++++++++----
1 file changed, 34 insertions(+), 4 deletions(-)
diff --git a/astroid/brain/pysix_moves.py b/astroid/brain/pysix_moves.py
index 548d9761..1db6566a 100644
--- a/astroid/brain/pysix_moves.py
+++ b/astroid/brain/pysix_moves.py
@@ -23,7 +23,8 @@
from astroid import MANAGER, register_module_extender
from astroid.builder import AstroidBuilder
-from astroid.exceptions import AstroidBuildingException
+from astroid.exceptions import AstroidBuildingException, NotFoundError
+from astroid import nodes
def _indent(text, prefix, predicate=None):
"""Adds 'prefix' to the beginning of selected lines in 'text'.
@@ -48,6 +49,7 @@
import CGIHTTPServer
import SimpleHTTPServer
+ import cPickle
from StringIO import StringIO
from cStringIO import StringIO as cStringIO
from UserDict import UserDict
@@ -194,7 +196,7 @@
import html.entities as html_entities
import html.parser as html_parser
import http.client as http_client
- import http.server
+ import http.server as http_server
BaseHTTPServer = CGIHTTPServer = SimpleHTTPServer = http.server
import pickle as cPickle
import queue
@@ -225,7 +227,8 @@
import tkinter.filedialog as tkinter_tkfiledialog
import tkinter.font as tkinter_font
import tkinter.messagebox as tkinter_messagebox
- import urllib.request
+ import urllib
+ import urllib.request as urllib_request
import urllib.robotparser as urllib_robotparser
import urllib.parse as urllib_parse
import urllib.error as urllib_error
@@ -248,10 +251,38 @@
def _six_fail_hook(modname):
- if modname != 'six.moves':
+ """Fix six.moves imports due to the dynamic nature of this
+ class.
+
+ Construct a psuedo-module which contains all the nessecary imports
+ for six
+
+ :param modname: Name of failed module
+ :type modname: str
+
+ :return: An astroid module
+ :rtype: nodes.Module
+ """
+
+ attribute_of = (modname != "six.moves" and
+ modname.startswith("six.moves"))
+ if modname != 'six.moves' and not attribute_of:
raise AstroidBuildingException
module = AstroidBuilder(MANAGER).string_build(_IMPORTS)
module.name = 'six.moves'
+ if attribute_of:
+ # Facilitate import of submodules in Moves
+ start_index = len(module.name)
+ attribute = modname[start_index:].lstrip(".").replace(".", "_")
+ try:
+ import_attr = module.getattr(attribute)[0]
+ except NotFoundError:
+ raise AstroidBuildingException
+ if isinstance(import_attr, nodes.Import):
+ submodule = MANAGER.ast_from_module_name(import_attr.names[0][0])
+ return submodule
+ # Let dummy submodule imports pass through
+ # This will cause an Uninferable result, which is okay
return module
[buildout] [buildout]
parts = parts =
pylint pylint
astroid
extends = extends =
../patch/buildout.cfg ../patch/buildout.cfg
[astroid]
recipe = zc.recipe.egg:custom
egg = astroid
patches =
${:_profile_base_location_}/astroid-six_moves_import_error.patch#377beb0c50f52b9608bb6be7bf93096e
patch-options = -p1
patch-binary = ${patch:location}/bin/patch
[pylint] [pylint]
recipe = zc.recipe.egg:custom recipe = zc.recipe.egg:custom
egg = pylint egg = pylint
patches = patches =
${:_profile_base_location_}/pylint-super_on_old_class.patch#cb0c3f8c091bf4980be395c917edc435 ${:_profile_base_location_}/pylint-super_on_old_class.patch#cb0c3f8c091bf4980be395c917edc435
${:_profile_base_location_}/pylint-redefining-builtins-modules.patch#043defc6e9002ac48b40e078797d4d17
patch-options = -p1 patch-options = -p1
patch-binary = ${patch:location}/bin/patch patch-binary = ${patch:location}/bin/patch
From 258eee33e9a059b704546772b42683699894b52e Mon Sep 17 00:00:00 2001
From: Claudiu Popa <pcmanticore@gmail.com>
Date: Fri, 25 Mar 2016 14:36:31 +0000
Subject: [PATCH] Backport of new option, 'redefining-builtins-modules'.
commit 5674ff98a6cd090578910c2c3bb02e1328f8e6d2
Author: Claudiu Popa <pcmanticore@gmail.com>
Date: Wed Apr 4 20:56:59 2018 +0200
builtins is allowed to redefine builtins. Close #1966
commit 5674ff98a6cd090578910c2c3bb02e1328f8e6d2
Author: Claudiu Popa <pcmanticore@gmail.com>
Date: Wed Apr 4 20:56:59 2018 +0200
builtins is allowed to redefine builtins. Close #1966
commit 44a2431745e61ff7d7ded7db5145da835b5877d1
Author: Claudiu Popa <pcmanticore@gmail.com>
Date: Tue Dec 12 18:10:26 2017 +0100
past.builtins import don't trigger redefined-builtin. Close #1764
commit ad7c2cd38f7213edd1ff37aaead86d5ae8390df4.
Author: Claudiu Popa <pcmanticore@gmail.com>
Date: Fri Mar 25 14:36:31 2016 +0000
Add a new option, 'redefining-builtins-modules'.
The option can be used for controlling the modules
which can redefine builtins, such as six.moves and future.builtins.
Close #464.
---
pylint/checkers/variables.py | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/pylint/checkers/variables.py b/pylint/checkers/variables.py
index 8f6f9574..3223f8f0 100644
--- a/pylint/checkers/variables.py
+++ b/pylint/checkers/variables.py
@@ -309,7 +309,13 @@ builtins. Remember that you should avoid to define new builtins when possible.'
'help' : 'List of strings which can identify a callback '
'function by name. A callback name must start or '
'end with one of those strings.'}
- )
+ ),
+ ("redefining-builtins-modules",
+ {'default': ('six.moves', 'past.builtins', 'future.builtins', 'builtins', 'io'), 'type': 'csv',
+ 'metavar': '<comma separated list>',
+ 'help': 'List of qualified module names which can have objects '
+ 'that can redefine builtins.'}
+ ),
)
def __init__(self, linter=None):
BaseChecker.__init__(self, linter)
@@ -323,7 +329,8 @@ builtins. Remember that you should avoid to define new builtins when possible.'
self._to_consume = [(copy(node.locals), {}, 'module')]
for name, stmts in six.iteritems(node.locals):
if is_builtin(name) and not is_inside_except(stmts[0]):
- # do not print Redefining builtin for additional builtins
+ if self._should_ignore_redefined_builtin(stmts[0]):
+ continue
self.add_message('redefined-builtin', args=name, node=stmts[0])
@check_messages('unused-import', 'unused-wildcard-import',
@@ -496,7 +503,7 @@ builtins. Remember that you should avoid to define new builtins when possible.'
dummy_rgx = self.config.dummy_variables_rgx
if not dummy_rgx.match(name):
self.add_message('redefined-outer-name', args=(name, line), node=stmt)
- elif is_builtin(name):
+ elif is_builtin(name) and not self._should_ignore_redefined_builtin(stmt):
# do not print Redefining builtin for additional builtins
self.add_message('redefined-builtin', args=name, node=stmt)
@@ -688,6 +695,11 @@ builtins. Remember that you should avoid to define new builtins when possible.'
and not ass.statement() is node.statement():
self.add_message('undefined-loop-variable', args=name, node=node)
+ def _should_ignore_redefined_builtin(self, stmt):
+ if not isinstance(stmt, astroid.From):
+ return False
+ return stmt.modname in self.config.redefining_builtins_modules
+
@check_messages('redefine-in-handler')
def visit_excepthandler(self, node):
for name in get_all_elements(node.name):
--
2.36.0
...@@ -6,27 +6,19 @@ parts = ...@@ -6,27 +6,19 @@ parts =
[python-slip] [python-slip]
# BUG: This section does FS changes outside location. # BUG: This section does FS changes outside location.
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = https://github.com/nphilipp/python-slip/releases/download/python-slip-0.6.1/python-slip-0.6.1.tar.bz2 url = https://github.com/nphilipp/python-slip/releases/download/python-slip-0.6.5/python-slip-0.6.5.tar.bz2
md5sum = a6d8ee96245fc21785d4c1c062c85f2f md5sum = 28ae5f93853466c44ec96706ba2a1eb4
configure-command = true configure-command = true
make-targets = make-targets =
make-binary = make-binary =
make all make all
cp -ax . ${:slip}/ cp -ax . ${:slip}/
cp -ax . ${:slip.dbus}/ cp -ax . ${:slip.dbus}/
cp -ax . ${:slip.gtk}/
sed -i '/setup(name="slip.dbus"/,/"gtk", "pango"])/d' ${:slip}/setup.py sed -i '/setup(name="slip.dbus"/,/"gtk", "pango"])/d' ${:slip}/setup.py
sed -i '/setup(name="slip"/,/selinux"])/d' ${:slip.dbus}/setup.py sed -i '/setup(name="slip"/,/selinux"])/d' ${:slip.dbus}/setup.py
sed -i '/if sys.version_info.major/,/"gtk", "pango"])/d' ${:slip.dbus}/setup.py sed -i '/if sys.version_info.major/,/"gtk", "pango"])/d' ${:slip.dbus}/setup.py
sed -i '/setup(name="slip"/,/xml.etree.ElementTree"])/d' ${:slip.gtk}/setup.py
slip = ${buildout:parts-directory}/slip slip = ${buildout:parts-directory}/slip
slip.dbus = ${buildout:parts-directory}/slip.dbus slip.dbus = ${buildout:parts-directory}/slip.dbus
slip.gtk = ${buildout:parts-directory}/slip.gtk
[slip.gtk-develop]
recipe = zc.recipe.egg:develop
setup = ${python-slip:slip.gtk}
egg-name = slip.gtk
[slip.dbus-develop] [slip.dbus-develop]
recipe = zc.recipe.egg:develop recipe = zc.recipe.egg:develop
...@@ -43,5 +35,4 @@ recipe = zc.recipe.egg ...@@ -43,5 +35,4 @@ recipe = zc.recipe.egg
eggs = eggs =
${slip-develop:egg-name} ${slip-develop:egg-name}
${slip.dbus-develop:egg-name} ${slip.dbus-develop:egg-name}
${slip.gtk-develop:egg-name}
...@@ -30,4 +30,4 @@ go.importpath = github.com/signal18/replication-manager ...@@ -30,4 +30,4 @@ go.importpath = github.com/signal18/replication-manager
repository = https://github.com/signal18/replication-manager repository = https://github.com/signal18/replication-manager
#branch = 2.1 #branch = 2.1
branch = develop branch = develop
revision = 838ffeb205ea4477f1c1bda607940fa07d8bcf51 revision = 774fde2ce67942a31b99200fea6301189344ecd9
\ No newline at end of file \ No newline at end of file
#!/bin/sh -e #!/bin/sh -ex
# #
# This simple script to buildout slapos from source using 1.0 branch on # This simple script to buildout slapos from source using 1.0 branch on
# /opt/slapos folder, adapt this script as you please. # /opt/slapos folder, adapt this script as you please.
# #
# Be carefull to not run this script were the script is already installed. # Be carefull to not run this script where slapos-node is already installed.
# #
# Before run this script, ensure dependencies are installed, on debian, you can # Before run this script, ensure dependencies are installed, on debian, you can
# use the command bellow: # use the command bellow:
# #
# apt-get install python gcc g++ make uml-utilities bridge-utils patch wget # apt-get install python3 gcc g++ make patch wget curl
# #
# Use sudo or superuser and create slapos directory (you can pick a different directory) # Use sudo or superuser and create slapos directory (you can pick a different directory)
mkdir -p /opt/slapos/log/ mkdir -p /opt/slapos
cd /opt/slapos/ cd /opt/slapos/
mkdir -p eggs log download-cache/dist
# Create buildout.cfg SlapOS bootstrap file
echo "[buildout]
extends = https://lab.nexedi.com/nexedi/slapos/raw/1.0/component/slapos/buildout.cfg
" > buildout.cfg
# Required in some distros such as Mandriva # Required in some distros such as Mandriva
unset PYTHONPATH unset PYTHONPATH
...@@ -26,17 +22,61 @@ unset PYTHONDONTWRITEBYTECODE ...@@ -26,17 +22,61 @@ unset PYTHONDONTWRITEBYTECODE
unset CONFIG_SITE unset CONFIG_SITE
# #
# Bootstrap SlapOS, using forked version of buildout. # Bootstrap buildout.
# #
wget https://bootstrap.pypa.io/bootstrap-buildout.py cat > buildout.cfg <<EOF
python -S bootstrap-buildout.py --buildout-version 2.5.2+slapos013 \ [buildout]
-f http://www.nexedi.org/static/packages/source/slapos.buildout/ extensions =
download-cache = download-cache
parts =
zc.buildout
# Add location for modified non-official slapos.buildout
find-links +=
http://www.nexedi.org/static/packages/source/
http://www.nexedi.org/static/packages/source/slapos.buildout/
[zc.buildout]
recipe = zc.recipe.egg
eggs =
zc.buildout
[versions]
setuptools = 44.1.1
zc.buildout = 2.7.1+slapos019
zc.recipe.egg = 2.0.3+slapos003
EOF
rm -f bootstrap.py
wget https://lab.nexedi.com/nexedi/slapos.buildout/raw/master/bootstrap/bootstrap.py
python3 -S bootstrap.py \
--setuptools-version 40.8.0 \
--setuptools-to-dir eggs
sed -i '1s/$/ -S/' bin/buildout
bin/buildout buildout:newest=true -v
# Install slapos.libnetworkcache (outside of system libraries, see python -S)
cat > buildout.cfg <<EOF
[buildout]
extends = https://lab.nexedi.com/nexedi/slapos/raw/1.0/component/slapos/buildout.cfg
download-cache = download-cache
parts =
networkcached
[networkcached]
recipe = zc.recipe.egg
eggs =
slapos.libnetworkcache
zc.buildout
EOF
sed -i '1s/$/ -S/' bin/buildout
bin/buildout buildout:newest=true -v
# #
# Warning:Depending on your distribution you might need to # Finally start the big build
# replace python by python2 in the last command. This happens when your
# distribution considers that the standard python is the 3.x branch.
# #
# Finally start to build echo "[buildout]
extends = https://lab.nexedi.com/nexedi/slapos/raw/1.0/component/slapos/buildout.cfg
bin/buildout -v download-cache = download-cache
" > buildout.cfg
bin/buildout buildout:newest=true -v
...@@ -19,14 +19,17 @@ parts = ...@@ -19,14 +19,17 @@ parts =
py py
firewalld-patch firewalld-patch
[python]
part = python3
[environment] [environment]
# Note: For now original PATH is appended to the end, as not all tools are # Note: For now original PATH is appended to the end, as not all tools are
# provided by SlapOS # provided by SlapOS
PATH=${bison:location}/bin:${bzip2:location}/bin:${gettext:location}/bin:${glib:location}/bin:${libxml2:location}/bin:${libxslt:location}/bin:${m4:location}/bin:${ncurses:location}/bin:${openssl:location}/bin:${pkgconfig:location}/bin:${python2.7:location}/bin:${readline:location}/bin:${sqlite3:location}/bin:${swig:location}/bin:${buildout:bin-directory}:${patch:location}/bin:${socat:location}/bin:$PATH PATH=${bison:location}/bin:${bzip2:location}/bin:${gettext:location}/bin:${glib:location}/bin:${libxml2:location}/bin:${libxslt:location}/bin:${m4:location}/bin:${ncurses:location}/bin:${openssl:location}/bin:${pkgconfig:location}/bin:${python:location}/bin:${readline:location}/bin:${sqlite3:location}/bin:${swig:location}/bin:${buildout:bin-directory}:${patch:location}/bin:${socat:location}/bin:$PATH
CFLAGS=-I${bzip2:location}/include -I${gdbm:location}/include -I${gettext:location}/include -I${glib:location}/include -I${libxml2:location}/include -I${libxslt:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${readline:location}/include -I${sqlite3:location}/include -I${zlib:location}/include CFLAGS=-I${bzip2:location}/include -I${gdbm:location}/include -I${gettext:location}/include -I${glib:location}/include -I${libxml2:location}/include -I${libxslt:location}/include -I${ncurses:location}/include -I${openssl:location}/include -I${readline:location}/include -I${sqlite3:location}/include -I${zlib:location}/include
CPPFLAGS=${:CFLAGS} CPPFLAGS=${:CFLAGS}
LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${gdbm:location}/lib -Wl,-rpath=${gdbm:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${libxslt:location}/lib -Wl,-rpath=${libxslt:location}/lib -L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${readline:location}/lib -Wl,-rpath=${readline:location}/lib -L${sqlite3:location}/lib -Wl,-rpath=${sqlite3:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${gdbm:location}/lib -Wl,-rpath=${gdbm:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${glib:location}/lib -Wl,-rpath=${glib:location}/lib -L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${libxslt:location}/lib -Wl,-rpath=${libxslt:location}/lib -L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${readline:location}/lib -Wl,-rpath=${readline:location}/lib -L${sqlite3:location}/lib -Wl,-rpath=${sqlite3:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${libxml2:location}/lib/pkgconfig:${libxslt:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig:${python2.7:location}/lib/pkgconfig:${sqlite3:location}/lib/pkgconfig PKG_CONFIG_PATH=${glib:location}/lib/pkgconfig:${libxml2:location}/lib/pkgconfig:${libxslt:location}/lib/pkgconfig:${openssl:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig:${python:location}/lib/pkgconfig:${sqlite3:location}/lib/pkgconfig
LD_LIBRARY_PATH=${bzip2:location}/lib:${gdbm:location}/lib:${gettext:location}/lib:${glib:location}/lib:${libxml2:location}/lib:${libxslt:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${readline:location}/lib:${sqlite3:location}/lib:${zlib:location}/lib LD_LIBRARY_PATH=${bzip2:location}/lib:${gdbm:location}/lib:${gettext:location}/lib:${glib:location}/lib:${libxml2:location}/lib:${libxslt:location}/lib:${ncurses:location}/lib:${openssl:location}/lib:${readline:location}/lib:${sqlite3:location}/lib:${zlib:location}/lib
[cfg-environment] [cfg-environment]
......
...@@ -30,9 +30,9 @@ init += ...@@ -30,9 +30,9 @@ init +=
buildout = self.buildout['buildout'] buildout = self.buildout['buildout']
assert buildout['directory'] == buildout['destdir'] + buildout['rootdir'], ( assert buildout['directory'] == buildout['destdir'] + buildout['rootdir'], (
"Buildout MUST BE launched in destdir/rootdir (currently launched in %s but should be launched in %s)", "Buildout MUST BE launched in destdir/rootdir (currently launched in %s but should be launched in %s)",
buildout['directory'], buildout['destdir'] + buildout['rootdir']) buildout['directory'], buildout['destdir'] + buildout['rootdir'])
[python2.7] [python3-common]
configure-options += configure-options +=
--prefix=${buildout:rootdir}/parts/${:_buildout_section_name_} --prefix=${buildout:rootdir}/parts/${:_buildout_section_name_}
environment += environment +=
...@@ -85,9 +85,8 @@ pre-configure = ...@@ -85,9 +85,8 @@ pre-configure =
sed -i 's#/opt/slapos/parts/dbus/lib/libdbus-1.la#${dbus:location}/lib/libdbus-1.la#' ${dbus-glib:location}/lib/libdbus-glib-1.la sed -i 's#/opt/slapos/parts/dbus/lib/libdbus-1.la#${dbus:location}/lib/libdbus-1.la#' ${dbus-glib:location}/lib/libdbus-glib-1.la
environment += environment +=
LD_LIBRARY_PATH=${dbus:location}/lib LD_LIBRARY_PATH=${dbus:location}/lib
PYTHON=${python:location}/bin/python${python:version} PYTHON_INCLUDES=-I${python:location}/include/python${python:version}m
PYTHON_INCLUDES=-I${python:location}/include/python${python:version} PYTHON_LIBS=-L${python:location}/lib -lpython${python:version}m -lpthread -ldl -lutil -lm
PYTHON_LIBS=-L${python:location}/lib -lpython${python:version} -lpthread -ldl -lutil -lm
post-install = post-install =
sed -i 's#${dbus:location}/lib/libdbus-1.la#/opt/slapos/parts/dbus/lib/libdbus-1.la#' ${dbus-glib:location}/lib/libdbus-glib-1.la sed -i 's#${dbus:location}/lib/libdbus-1.la#/opt/slapos/parts/dbus/lib/libdbus-1.la#' ${dbus-glib:location}/lib/libdbus-glib-1.la
......
...@@ -47,19 +47,17 @@ post-install = ...@@ -47,19 +47,17 @@ post-install =
keytar.node keytar.node
[theia-wrapper] [theia-wrapper]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:bin-directory}/${:_buildout_section_name_} output = ${buildout:bin-directory}/${:_buildout_section_name_}
template = inline =
inline:
#!/bin/sh #!/bin/sh
cd ${theia:location} cd ${theia:location}
exec ${yarn:location}/bin/yarn theia start "$@" exec ${yarn:location}/bin/yarn theia start "$@"
[theia-open] [theia-open]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:bin-directory}/${:_buildout_section_name_} output = ${buildout:bin-directory}/${:_buildout_section_name_}
template = inline =
inline:
#!/bin/sh #!/bin/sh
exec ${nodejs:location}/bin/node ${theia:location}/node_modules/.bin/theia-open "$@" exec ${nodejs:location}/bin/node ${theia:location}/node_modules/.bin/theia-open "$@"
......
...@@ -19,4 +19,4 @@ md5sum = 8157c22134200bd862a07c6521ebf799 ...@@ -19,4 +19,4 @@ md5sum = 8157c22134200bd862a07c6521ebf799
[yarn.lock] [yarn.lock]
_update_hash_filename_ = yarn.lock _update_hash_filename_ = yarn.lock
md5sum = 7c6a0103f9b07cf51940f25b8e3a5730 md5sum = b1012625be07ad6a3daf27b9ed6004f0
...@@ -75,7 +75,7 @@ urls = vscode-bat https://open-vsx.org/api/vscode/bat/1.62.3/file/vscode.bat-1.6 ...@@ -75,7 +75,7 @@ urls = vscode-bat https://open-vsx.org/api/vscode/bat/1.62.3/file/vscode.bat-1.6
redhat-java https://open-vsx.org/api/redhat/java/0.61.0/file/redhat.java-0.61.0.vsix 72e548e2845e1ff655f28111558d6942 redhat-java https://open-vsx.org/api/redhat/java/0.61.0/file/redhat.java-0.61.0.vsix 72e548e2845e1ff655f28111558d6942
vscjava-vscode-java-test https://open-vsx.org/api/vscjava/vscode-java-test/0.26.0/file/vscjava.vscode-java-test-0.26.0.vsix fd63da5537a4bee1d3ceaae0fa6bf419 vscjava-vscode-java-test https://open-vsx.org/api/vscjava/vscode-java-test/0.26.0/file/vscjava.vscode-java-test-0.26.0.vsix fd63da5537a4bee1d3ceaae0fa6bf419
ms-python-python https://open-vsx.org/api/ms-python/python/2020.9.112786/file/ms-python.python-2020.9.112786.vsix c64b79fa822418e07b6d0f57b8838b44 ms-python-python https://open-vsx.org/api/ms-python/python/2020.9.112786/file/ms-python.python-2020.9.112786.vsix c64b79fa822418e07b6d0f57b8838b44
perrinjerome-vscode-zc-buildout https://open-vsx.org/api/perrinjerome/vscode-zc-buildout/0.7.0/file/perrinjerome.vscode-zc-buildout-0.7.0.vsix 7598fa3c1c3701cb2da5c330fe996ff1 perrinjerome-vscode-zc-buildout https://open-vsx.org/api/perrinjerome/vscode-zc-buildout/0.7.1/file/perrinjerome.vscode-zc-buildout-0.7.1.vsix 2f1904f6e358c854cc98fff1b9614d0e
jebbs-plantuml https://open-vsx.org/api/jebbs/plantuml/2.14.0/file/jebbs.plantuml-2.14.0.vsix 13fa7cbd14a30ecca166c41a307c7a73 jebbs-plantuml https://open-vsx.org/api/jebbs/plantuml/2.14.0/file/jebbs.plantuml-2.14.0.vsix 13fa7cbd14a30ecca166c41a307c7a73
rafaelmaiolla-diff https://open-vsx.org/api/rafaelmaiolla/diff/0.0.1/file/rafaelmaiolla.diff-0.0.1.vsix 1d8f868bc19b7d703c1be2bf99c4c7f9 rafaelmaiolla-diff https://open-vsx.org/api/rafaelmaiolla/diff/0.0.1/file/rafaelmaiolla.diff-0.0.1.vsix 1d8f868bc19b7d703c1be2bf99c4c7f9
perrinjerome-git-commit-syntax https://open-vsx.org/api/perrinjerome/git-commit-syntax/0.0.1/file/perrinjerome.git-commit-syntax-0.0.1.vsix 46625f2f05e244911c2cb9cc5032c0ef perrinjerome-git-commit-syntax https://open-vsx.org/api/perrinjerome/git-commit-syntax/0.0.1/file/perrinjerome.git-commit-syntax-0.0.1.vsix 46625f2f05e244911c2cb9cc5032c0ef
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -39,9 +39,9 @@ eggs = ...@@ -39,9 +39,9 @@ eggs =
# env.sh for that python + go to be on $PATH # env.sh for that python + go to be on $PATH
[wendelin.core-env.sh] [wendelin.core-env.sh]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:directory}/${:_buildout_section_name_} output = ${buildout:directory}/${:_buildout_section_name_}
template = inline: inline =
. ${gowork:env.sh} . ${gowork:env.sh}
export PS1="(wendelin.core-env) $PS1" export PS1="(wendelin.core-env) $PS1"
export PATH=${buildout:bin-directory}:${gdb:location}/bin:$PATH export PATH=${buildout:bin-directory}:${gdb:location}/bin:$PATH
...@@ -49,12 +49,12 @@ template = inline: ...@@ -49,12 +49,12 @@ template = inline:
# instance to run nxdtest. # instance to run nxdtest.
[instance.cfg] [instance.cfg]
<= jinja2-template <= jinja2-template
template = inline: inline =
[buildout] [buildout]
extends = ${nxdtest-instance.cfg:rendered} extends = ${nxdtest-instance.cfg:output}
[runTestSuite] [runTestSuite]
env.sh = ${wendelin.core-env.sh:rendered} env.sh = ${wendelin.core-env.sh:output}
workdir = ${wendelin.core-repository:location} workdir = ${wendelin.core-repository:location}
......
...@@ -23,21 +23,21 @@ eggs = ${zodbtools:egg}[test] ...@@ -23,21 +23,21 @@ eggs = ${zodbtools:egg}[test]
# env.sh for zodbtools's python to be on $PATH. # env.sh for zodbtools's python to be on $PATH.
[zodbtools-env.sh] [zodbtools-env.sh]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = ${buildout:directory}/${:_buildout_section_name_} output = ${buildout:directory}/${:_buildout_section_name_}
template = inline: inline =
export PS1="(zodbtools-env) $PS1" export PS1="(zodbtools-env) $PS1"
export PATH=${buildout:bin-directory}:$PATH export PATH=${buildout:bin-directory}:$PATH
# instance to run nxdtest. # instance to run nxdtest.
[instance.cfg] [instance.cfg]
<= jinja2-template <= jinja2-template
template = inline: inline =
[buildout] [buildout]
extends = ${nxdtest-instance.cfg:rendered} extends = ${nxdtest-instance.cfg:output}
[runTestSuite] [runTestSuite]
env.sh = ${zodbtools-env.sh:rendered} env.sh = ${zodbtools-env.sh:output}
workdir = ${zodbtools-repository:location} workdir = ${zodbtools-repository:location}
......
...@@ -28,7 +28,7 @@ from setuptools import setup, find_packages ...@@ -28,7 +28,7 @@ from setuptools import setup, find_packages
import glob import glob
import os import os
version = '1.0.238' version = '1.0.244'
name = 'slapos.cookbook' name = 'slapos.cookbook'
long_description = open("README.rst").read() long_description = open("README.rst").read()
......
...@@ -24,7 +24,7 @@ Here is an example of a section to add in your software.cfg : ...@@ -24,7 +24,7 @@ Here is an example of a section to add in your software.cfg :
openoffice-port = 1235 openoffice-port = 1235
ooo-binary-path = ${directory:libreoffice-bin}/program ooo-binary-path = ${directory:libreoffice-bin}/program
environment = environment =
FONTCONFIG_FILE = $${fontconfig-conf:rendered} FONTCONFIG_FILE = $${fontconfig-conf:output}
PATH = ${binary-link:target-directory} PATH = ${binary-link:target-directory}
ooo-uno-path = ${directory:libreoffice-bin}/basis-link/program ooo-uno-path = ${directory:libreoffice-bin}/basis-link/program
......
This diff is collapsed.
...@@ -33,22 +33,23 @@ class Recipe(GenericBaseRecipe): ...@@ -33,22 +33,23 @@ class Recipe(GenericBaseRecipe):
def install(self): def install(self):
path_list = [] path_list = []
if not self.optionIsTrue('use_passwd', False): if not self.optionIsTrue('use-passwd', False):
master_passwd = "# masterauth <master-password>" master_passwd = "# masterauth <master-password>"
else: else:
master_passwd = "masterauth %s" % self.options['passwd'] master_passwd = "masterauth %s" % self.options['passwd']
config_file = self.options['config_file'].strip() config_file = self.options['config-file'].strip()
configuration = dict(pid_file=self.options['pid_file'], configuration = dict(
port=self.options['port'], pid_file=self.options['pid-file'],
ipv6=self.options['ipv6'], port=self.options['port'],
server_dir=self.options['server_dir'], ipv6=self.options['ipv6'],
log_file=self.options['log_file'], server_dir=self.options['server-dir'],
master_passwd=master_passwd log_file=self.options['log-file'],
master_passwd=master_passwd
) )
if self.options.get('unixsocket'): if self.options.get('unixsocket'):
unixsocket = "unixsocket %s\nunixsocketperm 700" % self.options['unixsocket'] unixsocket = "unixsocket %s\nunixsocketperm 700" % self.options['unixsocket']
else: else:
unixsocket = "" unixsocket = ""
configuration['unixsocket'] = unixsocket configuration['unixsocket'] = unixsocket
config = self.createFile(config_file, config = self.createFile(config_file,
...@@ -58,28 +59,31 @@ class Recipe(GenericBaseRecipe): ...@@ -58,28 +59,31 @@ class Recipe(GenericBaseRecipe):
redis = self.createWrapper( redis = self.createWrapper(
self.options['wrapper'], self.options['wrapper'],
(self.options['server_bin'], config_file), (self.options['server-bin'], config_file),
) )
path_list.append(redis) path_list.append(redis)
promise_script = self.options.get('promise_wrapper', '').strip() promise_script = self.options.get('promise-wrapper', '').strip()
if promise_script: if promise_script:
promise = self.createPythonScript( args = [
self.options['cli-bin'],
'-h',
self.options['ipv6'],
'-p',
self.options['port'],
]
if self.options.get('unixsocket'):
args.extend(('-s', self.options['unixsocket']))
args.extend((
'publish',
'Promise-Service',
'SlapOS Promise',
))
promise = self.createWrapper(
promise_script, promise_script,
__name__ + '.promise', args,
(self.options['ipv6'], int(self.options['port']),
self.options.get('unixsocket'))
) )
path_list.append(promise) path_list.append(promise)
return path_list return path_list
def promise(host, port, unixsocket):
from .MyRedis2410 import Redis
try:
r = Redis(host=host, port=port, unix_socket_path=unixsocket, db=0)
r.publish("Promise-Service","SlapOS Promise")
r.connection_pool.disconnect()
except Exception as e:
sys.exit(e)
import functools
import os
import shutil
import tempfile
import unittest
import zc.buildout.testing
class TestRedis(unittest.TestCase):
def getConfig(self):
return {
'config-file': self.getTempPath('redis.cfg'),
'pid-file': self.getTempPath('redis.pid'),
'port': 1234,
'ipv6': '::1',
'server-dir': self.getTempPath('srv'),
'log-file': self.getTempPath('redis.log'),
'wrapper': self.getTempPath('wrapper'),
'server-bin': '/path/to/bin/redis-server',
}
def setUp(self):
self.tmp_dir = tempfile.mkdtemp()
self.addCleanup(shutil.rmtree, self.tmp_dir)
self.getTempPath = functools.partial(os.path.join, self.tmp_dir)
self.buildout = buildout = zc.buildout.testing.Buildout()
self.config = self.getConfig()
buildout['redis'] = self.config
from slapos.recipe import redis
self.recipe = redis.Recipe(buildout, "redis", buildout['redis'])
def test_install(self):
self.installed = self.recipe.install()
redis_cfg = self.installed[0]
self.assertEqual(redis_cfg, self.config['config-file'])
with open(redis_cfg) as f:
self.assertIn(self.config['pid-file'], f.read())
wrapper = self.installed[1]
self.assertEqual(wrapper, self.getConfig()['wrapper'])
with open(wrapper) as f:
self.assertIn('/path/to/bin/redis-server', f.read())
class TestRedisWithUnixSocket(TestRedis):
def getConfig(self):
return dict(
super(TestRedisWithUnixSocket, self).getConfig(),
unixsocket=self.getTempPath('redis.sock'))
class TestRedisWithPassword(TestRedis):
def getConfig(self):
return dict(
super(TestRedisWithPassword, self).getConfig(), passwd='secret')
class TestRedisWithPromise(TestRedis):
def getConfig(self):
return dict(
super(TestRedisWithPromise, self).getConfig(), **{
'cli-bin': '/path/to/bin/redis-cli',
'promise-wrapper': self.getTempPath('promise-wrapper')
})
def test_install(self):
super(TestRedisWithPromise, self).test_install()
promise_wrapper = self.installed[2]
self.assertEqual(promise_wrapper, self.getConfig()['promise-wrapper'])
with open(promise_wrapper) as f:
self.assertIn('/path/to/bin/redis-cli', f.read())
class TestRedisWithUnixSocketAndPromise(TestRedisWithPromise):
def getConfig(self):
return dict(
super(TestRedisWithUnixSocketAndPromise, self).getConfig(),
unixsocket=self.getTempPath('redis.sock'))
...@@ -46,8 +46,8 @@ md5sum = ae4a0043414336a521b524d9c95f1c68 ...@@ -46,8 +46,8 @@ md5sum = ae4a0043414336a521b524d9c95f1c68
[template-pullrdiffbackup] [template-pullrdiffbackup]
filename = instance-pullrdiffbackup.cfg.in filename = instance-pullrdiffbackup.cfg.in
md5sum = 45a4faa217ea5b83ecf271791e1632dd md5sum = 931038cfa23216af1628b960a2e10de6
[template] [template]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 3df515def97f1e8a9f181514ae6ef03f md5sum = 974e21f30669e1b83e1e0cd8def0adc3
...@@ -42,7 +42,6 @@ plugin = $${:etc}/plugin ...@@ -42,7 +42,6 @@ plugin = $${:etc}/plugin
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${template-dcron-service:output} url = ${template-dcron-service:output}
output = $${directory:services}/crond output = $${directory:services}/crond
mode = 0700
logfile = $${directory:log}/crond.log logfile = $${directory:log}/crond.log
################################# #################################
...@@ -122,7 +121,6 @@ config-statistic_name = {{ '$${' ~ slave_reference }}-backup-script:statistic_na ...@@ -122,7 +121,6 @@ config-statistic_name = {{ '$${' ~ slave_reference }}-backup-script:statistic_na
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${template-backup-script:output} url = ${template-backup-script:output}
output = $${directory:backupscript}/$${:_buildout_section_name_} output = $${directory:backupscript}/$${:_buildout_section_name_}
mode = 0700
datadirectory = {{ '$${' ~ slave_reference }}-backup-directory:directory} datadirectory = {{ '$${' ~ slave_reference }}-backup-directory:directory}
sshkey = {{ '$${' ~ slave_reference }}-backup-private_key:key} sshkey = {{ '$${' ~ slave_reference }}-backup-private_key:key}
connection = {{ connection }} connection = {{ connection }}
...@@ -140,7 +138,6 @@ statistic_log = $${directory:statistic}/$${:statistic_name} ...@@ -140,7 +138,6 @@ statistic_log = $${directory:statistic}/$${:statistic_name}
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${template-crontab-line:output} url = ${template-crontab-line:output}
output = $${directory:cron-lines}/$${:_buildout_section_name_} output = $${directory:cron-lines}/$${:_buildout_section_name_}
mode = 0600
script = {{ '$${' ~ slave_reference }}-backup-script:output} script = {{ '$${' ~ slave_reference }}-backup-script:output}
frequency = {{ frequency }} frequency = {{ frequency }}
{% do crontab_line_list.append("$${%s-backup-crontab-line:output}" % slave_reference) -%} {% do crontab_line_list.append("$${%s-backup-crontab-line:output}" % slave_reference) -%}
...@@ -155,14 +152,12 @@ frequency = {{ frequency }} ...@@ -155,14 +152,12 @@ frequency = {{ frequency }}
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${template-update-rss-script:output} url = ${template-update-rss-script:output}
output = $${directory:etc}/$${:_buildout_section_name_} output = $${directory:etc}/$${:_buildout_section_name_}
mode = 0700
global_rss = $${slap-connection:computer-id}-$${slap-connection:partition-id}.rss global_rss = $${slap-connection:computer-id}-$${slap-connection:partition-id}.rss
[update-rss-crontab-line] [update-rss-crontab-line]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${template-crontab-line:output} url = ${template-crontab-line:output}
output = $${directory:cron-lines}/$${:_buildout_section_name_} output = $${directory:cron-lines}/$${:_buildout_section_name_}
mode = 0600
script = $${update-rss-script:output} script = $${update-rss-script:output}
frequency = */5 * * * * frequency = */5 * * * *
{% do crontab_line_list.append("$${update-rss-crontab-line:output}") -%} {% do crontab_line_list.append("$${update-rss-crontab-line:output}") -%}
...@@ -186,8 +181,7 @@ command = ${coreutils-output:cat} ${template-crontab:output} {{ crontab_line_lis ...@@ -186,8 +181,7 @@ command = ${coreutils-output:cat} ${template-crontab:output} {{ crontab_line_lis
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${template-nginx-service:output} url = ${template-nginx-service:output}
output = $${directory:services}/nginx output = $${directory:services}/nginx
mode = 0700 virtual-depends =
virtual-depends =
$${nginx-configuration:ip} $${nginx-configuration:ip}
[nginx-listen-promise] [nginx-listen-promise]
...@@ -201,7 +195,6 @@ config-port = $${nginx-configuration:port} ...@@ -201,7 +195,6 @@ config-port = $${nginx-configuration:port}
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${template-nginx-configuration:output} url = ${template-nginx-configuration:output}
output = $${directory:etc}/nginx.cfg output = $${directory:etc}/nginx.cfg
mode = 0600
access_log = $${directory:log}/nginx-access.log access_log = $${directory:log}/nginx-access.log
error_log = $${directory:log}/nginx-error.log error_log = $${directory:log}/nginx-error.log
ip = {{ partition_ipv6 }} ip = {{ partition_ipv6 }}
...@@ -224,7 +217,7 @@ private-path-list += ...@@ -224,7 +217,7 @@ private-path-list +=
# Add parts generated by template # Add parts generated by template
[buildout] [buildout]
extends = extends =
${monitor-template:rendered} ${monitor-template:output}
parts = parts =
......
...@@ -8,8 +8,8 @@ offline = true ...@@ -8,8 +8,8 @@ offline = true
[dynamic-template-pullrdiffbackup] [dynamic-template-pullrdiffbackup]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${template-pullrdiffbackup:output} url = ${template-pullrdiffbackup:output}
rendered = $${buildout:parts-directory}/$${:_buildout_section_name_}/$${:filename} output = $${buildout:parts-directory}/$${:_buildout_section_name_}/$${:filename}
filename = instance-pullrdiffbackup.cfg filename = instance-pullrdiffbackup.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
context = context =
...@@ -20,7 +20,7 @@ context = ...@@ -20,7 +20,7 @@ context =
[switch-softwaretype] [switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype recipe = slapos.cookbook:switch-softwaretype
RootSoftwareInstance = $${:pullrdiffbackup} RootSoftwareInstance = $${:pullrdiffbackup}
pullrdiffbackup = dynamic-template-pullrdiffbackup:rendered pullrdiffbackup = dynamic-template-pullrdiffbackup:output
[slap-configuration] [slap-configuration]
# Fetches parameters defined in SlapOS Master for this instance. # Fetches parameters defined in SlapOS Master for this instance.
......
...@@ -41,49 +41,41 @@ eggs = ...@@ -41,49 +41,41 @@ eggs =
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
mode = 0644
[template-nginx-configuration] [template-nginx-configuration]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
mode = 0644
[template-dcron-service] [template-dcron-service]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
mode = 0644
[template-backup-script] [template-backup-script]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
mode = 0644
[template-crontab-line] [template-crontab-line]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
mode = 0644
[template-crontab] [template-crontab]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
mode = 0644
[status2rss] [status2rss]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
mode = 0644
[template-update-rss-script] [template-update-rss-script]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
mode = 0644
########################################################## ##########################################################
# Buildout instance.cfg templates # Buildout instance.cfg templates
...@@ -92,13 +84,11 @@ mode = 0644 ...@@ -92,13 +84,11 @@ mode = 0644
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template-pullrdiffbackup.cfg output = ${buildout:directory}/template-pullrdiffbackup.cfg
mode = 0644
[template] [template]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
mode = 0644
[versions] [versions]
gunicorn = 19.1.1 gunicorn = 19.1.1
...@@ -19,11 +19,11 @@ md5sum = c4079d70ab3268234651bf6c36234b2f ...@@ -19,11 +19,11 @@ md5sum = c4079d70ab3268234651bf6c36234b2f
[template-instance-beremiz] [template-instance-beremiz]
filename = instance-beremiz.cfg.jinja2.in filename = instance-beremiz.cfg.jinja2.in
md5sum = ac05663b9006b7c4c9810a18e1ea4220 md5sum = 51071494633f4ffba700baf935dc6955
[template-instance-beremiz-test] [template-instance-beremiz-test]
filename = instance-beremiz-test.cfg.jinja2.in filename = instance-beremiz-test.cfg.jinja2.in
md5sum = 6049681908c5619d94499a6f4f224045 md5sum = ff7cf06927041f6aec5ad559950b69cb
[template-fluxbox-menu.in] [template-fluxbox-menu.in]
filename = fluxbox-menu.in filename = fluxbox-menu.in
......
...@@ -30,7 +30,11 @@ recipe = slapos.recipe.template ...@@ -30,7 +30,11 @@ recipe = slapos.recipe.template
inline = inline =
#!/bin/sh -e #!/bin/sh -e
cd {{ beremiz_location }}/tests cd {{ beremiz_location }}/tests
make test_dir=${directory:tests} xserver_command='echo "Using ${xserver:display} on Slapos X Server !";' "$@" testdir=$SLAPOS_TEST_LOG_DIRECTORY
if [ -z "$testdir" ]; then
testdir=${directory:tests}
fi
make test_dir=$testdir xserver_command='echo "Using ${xserver:display} on Slapos X Server !";' "$@"
output = ${directory:bin}/beremiztest output = ${directory:bin}/beremiztest
[sikulix] [sikulix]
......
...@@ -95,7 +95,6 @@ inline = ...@@ -95,7 +95,6 @@ inline =
{{ x11vnc_bin }} -storepasswd ${random-password:passwd} ${:passfile}; {{ x11vnc_bin }} -storepasswd ${random-password:passwd} ${:passfile};
fi fi
output = ${directory:bin}/x11vnc_passwd output = ${directory:bin}/x11vnc_passwd
mode = 700
[generate-vnc-password] [generate-vnc-password]
recipe = plone.recipe.command recipe = plone.recipe.command
......
...@@ -86,9 +86,9 @@ eggs += ...@@ -86,9 +86,9 @@ eggs +=
[beremiz] [beremiz]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
# download beremiz at revision bc72db1aa49fb5deabc950ed587772d027733a26 # download beremiz at revision 86b02aa32d413437ddcb9ab6cf4cc72aad394b3e
url = https://github.com/beremiz/beremiz/archive/bc72db1aa49fb5deabc950ed587772d027733a26.tar.gz url = https://github.com/beremiz/beremiz/archive/86b02aa32d413437ddcb9ab6cf4cc72aad394b3e.tar.gz
md5sum = 9ae7a55d4f2e673cbc8d2c4528e069b9 md5sum = 0b46be8c8e849bd612373dc999427912
[beremiz-setup] [beremiz-setup]
recipe = zc.recipe.egg:develop recipe = zc.recipe.egg:develop
...@@ -116,14 +116,14 @@ context = ...@@ -116,14 +116,14 @@ context =
key buildout_directory buildout:directory key buildout_directory buildout:directory
key template_fluxbox_menu template-fluxbox-menu.in:target key template_fluxbox_menu template-fluxbox-menu.in:target
key template_fonts_conf_target template-fonts-conf:output key template_fonts_conf_target template-fonts-conf:output
key template_monitor_cfg monitor2-template:rendered key template_monitor_cfg monitor2-template:output
key template_instance_beremiz template-instance-beremiz:target key template_instance_beremiz template-instance-beremiz:target
key template_instance_beremiz_test template-instance-beremiz-test:target key template_instance_beremiz_test template-instance-beremiz-test:target
key template_logrotate template-logrotate-base:rendered key template_logrotate template-logrotate-base:output
key fontconfig_location fontconfig:location key fontconfig_location fontconfig:location
key font_dejavu dejavu-fonts:location key font_dejavu dejavu-fonts:location
key font_liberation liberation-fonts:location key font_liberation liberation-fonts:location
key logrotate_cfg template-logrotate-base:rendered key logrotate_cfg template-logrotate-base:output
key bison_location bison:location key bison_location bison:location
key flex_location flex:location key flex_location flex:location
key fluxbox_location fluxbox:location key fluxbox_location fluxbox:location
...@@ -134,7 +134,7 @@ context = ...@@ -134,7 +134,7 @@ context =
key matiec_location matiec:location key matiec_location matiec:location
key mesa_location mesa:location key mesa_location mesa:location
key novnc_location noVNC:location key novnc_location noVNC:location
key nxdtest_template nxdtest-instance.cfg:rendered key nxdtest_template nxdtest-instance.cfg:output
key python_bin :python-bin key python_bin :python-bin
key opencv_location opencv:location key opencv_location opencv:location
key openssl_location openssl:location key openssl_location openssl:location
......
...@@ -50,12 +50,12 @@ eggs = click ...@@ -50,12 +50,12 @@ eggs = click
[instance-profile] [instance-profile]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
rendered = ${buildout:directory}/instance.cfg output = ${buildout:directory}/instance.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
context = context =
section buildout buildout section buildout buildout
raw template_monitor ${monitor2-template:rendered} raw template_monitor ${monitor2-template:output}
# md5sum is fetched from buildout.hash.cfg and can be recalculated automatically by # md5sum is fetched from buildout.hash.cfg and can be recalculated automatically by
# calling update-hash # calling update-hash
......
...@@ -11,8 +11,8 @@ download-cache = ${:directory}/download-cache ...@@ -11,8 +11,8 @@ download-cache = ${:directory}/download-cache
[template] [template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
# XXX: "template.cfg" is hardcoded in instanciation recipe # XXX: "template.cfg" is hardcoded in instanciation recipe
rendered = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
template = inline: inline =
[buildout] [buildout]
eggs-directory = ${buildout:eggs-directory} eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory}
...@@ -29,9 +29,8 @@ template = inline: ...@@ -29,9 +29,8 @@ template = inline:
bin = $${buildout:directory}/bin bin = $${buildout:directory}/bin
[runTestSuite] [runTestSuite]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = $${directory:bin}/$${:_buildout_section_name_} output = $${directory:bin}/$${:_buildout_section_name_}
template = ${:_profile_base_location_}/$${:_buildout_section_name_}.in url = ${:_profile_base_location_}/$${:_buildout_section_name_}.in
mode = 0755
context = context =
{##} section buildout buildout {##} section buildout buildout
{##} section parameter_dict runTestSuite-parameters {##} section parameter_dict runTestSuite-parameters
......
...@@ -20,11 +20,10 @@ scripts = ${:interpreter} ...@@ -20,11 +20,10 @@ scripts = ${:interpreter}
interpreter = ${:_buildout_section_name_} interpreter = ${:_buildout_section_name_}
[template] [template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
# XXX: "template.cfg" is hardcoded in instanciation recipe # XXX: "template.cfg" is hardcoded in instanciation recipe
rendered = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
template = inline =
inline:
[buildout] [buildout]
eggs-directory = ${buildout:eggs-directory} eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory}
...@@ -51,9 +50,8 @@ template = ...@@ -51,9 +50,8 @@ template =
[runTestSuite] [runTestSuite]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = $${directory:bin}/$${:_buildout_section_name_} output = $${directory:bin}/$${:_buildout_section_name_}
template = ${:_profile_base_location_}/$${:_buildout_section_name_}.in url = ${:_profile_base_location_}/$${:_buildout_section_name_}.in
mode = 0755
context = context =
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
key slapos_buildout slapos.buildout-repository:location key slapos_buildout slapos.buildout-repository:location
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# not need these here). # not need these here).
[template] [template]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = fb3a20e7f555a9ce7fe1ec547d0fcdfc md5sum = 051ae51b86f9aba169a6777fa2239901
[profile-common] [profile-common]
filename = instance-common.cfg.in filename = instance-common.cfg.in
...@@ -22,15 +22,15 @@ md5sum = 5784bea3bd608913769ff9a8afcccb68 ...@@ -22,15 +22,15 @@ md5sum = 5784bea3bd608913769ff9a8afcccb68
[profile-caddy-frontend] [profile-caddy-frontend]
filename = instance-apache-frontend.cfg.in filename = instance-apache-frontend.cfg.in
md5sum = 04e550480d3057ca65d87c6fadbaed6e md5sum = 02ce5d44d49982fda598e3086cfbca99
[profile-caddy-replicate] [profile-caddy-replicate]
filename = instance-apache-replicate.cfg.in filename = instance-apache-replicate.cfg.in
md5sum = 63b418626ef0f8ac54d6359fb6637371 md5sum = 57388e76c7e61b3d7213df8aac0b407d
[profile-slave-list] [profile-slave-list]
_update_hash_filename_ = templates/apache-custom-slave-list.cfg.in _update_hash_filename_ = templates/apache-custom-slave-list.cfg.in
md5sum = e3ba0da5d137dcbd56c2604d200ac3b9 md5sum = 964a7f673f441f3a3e90c88ab03e3351
[profile-replicate-publish-slave-information] [profile-replicate-publish-slave-information]
_update_hash_filename_ = templates/replicate-publish-slave-information.cfg.in _update_hash_filename_ = templates/replicate-publish-slave-information.cfg.in
...@@ -102,7 +102,7 @@ md5sum = b41b8de115ad815d0b0db306ad650365 ...@@ -102,7 +102,7 @@ md5sum = b41b8de115ad815d0b0db306ad650365
[profile-kedifa] [profile-kedifa]
filename = instance-kedifa.cfg.in filename = instance-kedifa.cfg.in
md5sum = 88f3a8cc30d3cf30f4bd2797f5c16221 md5sum = b5426129668f39ace55f14012c4a2fd2
[template-backend-haproxy-rsyslogd-conf] [template-backend-haproxy-rsyslogd-conf]
_update_hash_filename_ = templates/backend-haproxy-rsyslogd.conf.in _update_hash_filename_ = templates/backend-haproxy-rsyslogd.conf.in
......
...@@ -108,7 +108,7 @@ stop-on-error = True ...@@ -108,7 +108,7 @@ stop-on-error = True
ca_path='${kedifa-config:ca-certificate}', ca_path='${kedifa-config:ca-certificate}',
crl_path='${kedifa-config:crl}', crl_path='${kedifa-config:crl}',
key_path='${kedifa-csr:key}', key_path='${kedifa-csr:key}',
on_renew='${kedifa-reloader:rendered}', on_renew='${kedifa-reloader:output}',
template_csr='${kedifa-csr:template-csr}' template_csr='${kedifa-csr:template-csr}'
)}} )}}
...@@ -149,8 +149,8 @@ nginx_mime = {{ software_parameter_dict['nginx_mime'] }} ...@@ -149,8 +149,8 @@ nginx_mime = {{ software_parameter_dict['nginx_mime'] }}
[expose-csr-template] [expose-csr-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = ${directory:expose-csr-etc}/nginx.conf output = ${directory:expose-csr-etc}/nginx.conf
template = {{ software_parameter_dict['template_expose_csr_nginx_conf'] }} url = {{ software_parameter_dict['template_expose_csr_nginx_conf'] }}
context = context =
section configuration expose-csr-configuration section configuration expose-csr-configuration
...@@ -164,7 +164,7 @@ config-port = ${expose-csr-configuration:port} ...@@ -164,7 +164,7 @@ config-port = ${expose-csr-configuration:port}
[expose-csr] [expose-csr]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = {{ software_parameter_dict['nginx'] }} command-line = {{ software_parameter_dict['nginx'] }}
-c ${expose-csr-template:rendered} -c ${expose-csr-template:output}
url = https://[${expose-csr-configuration:ip}]:${expose-csr-configuration:port} url = https://[${expose-csr-configuration:ip}]:${expose-csr-configuration:port}
wrapper-path = ${directory:service}/expose-csr wrapper-path = ${directory:service}/expose-csr
...@@ -177,7 +177,7 @@ commands = ...@@ -177,7 +177,7 @@ commands =
[jinja2-template-base] [jinja2-template-base]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
extra-context = extra-context =
slapparameter_dict = {{ dumps(slapparameter_dict) }} slapparameter_dict = {{ dumps(slapparameter_dict) }}
slap_software_type = {{ dumps(instance_parameter_dict['slap-software-type']) }} slap_software_type = {{ dumps(instance_parameter_dict['slap-software-type']) }}
...@@ -203,11 +203,10 @@ logfile = ${directory:log}/kedifa.log ...@@ -203,11 +203,10 @@ logfile = ${directory:log}/kedifa.log
[kedifa-reloader] [kedifa-reloader]
<= jinja2-template-base <= jinja2-template-base
template = {{ software_parameter_dict['template_wrapper'] }} url = {{ software_parameter_dict['template_wrapper'] }}
rendered = ${directory:etc-run}/kedifa-reloader output = ${directory:etc-run}/kedifa-reloader
command = command =
kill -HUP `cat ${kedifa-config:pidfile}` kill -HUP `cat ${kedifa-config:pidfile}`
mode = 0700
extra-context = extra-context =
key content :command key content :command
......
...@@ -10,7 +10,7 @@ recipe = caddyprofiledeps ...@@ -10,7 +10,7 @@ recipe = caddyprofiledeps
[jinja2-template-base] [jinja2-template-base]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = ${buildout:directory}/${:filename} output = ${buildout:directory}/${:filename}
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
context = context =
...@@ -25,13 +25,13 @@ import-list = ...@@ -25,13 +25,13 @@ import-list =
[switch-softwaretype] [switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype recipe = slapos.cookbook:switch-softwaretype
default = dynamic-profile-caddy-replicate:rendered default = dynamic-profile-caddy-replicate:output
RootSoftwareInstance = ${:default} RootSoftwareInstance = ${:default}
custom-personal = dynamic-profile-caddy-replicate:rendered custom-personal = dynamic-profile-caddy-replicate:output
single-default = dynamic-profile-caddy-frontend:rendered single-default = dynamic-profile-caddy-frontend:output
single-custom-personal = dynamic-profile-caddy-frontend:rendered single-custom-personal = dynamic-profile-caddy-frontend:output
replicate = dynamic-profile-caddy-replicate:rendered replicate = dynamic-profile-caddy-replicate:output
kedifa = dynamic-profile-kedifa:rendered kedifa = dynamic-profile-kedifa:output
[software-parameter-section] [software-parameter-section]
{% for key,value in software_parameter_dict.iteritems() %} {% for key,value in software_parameter_dict.iteritems() %}
...@@ -40,7 +40,7 @@ kedifa = dynamic-profile-kedifa:rendered ...@@ -40,7 +40,7 @@ kedifa = dynamic-profile-kedifa:rendered
[dynamic-profile-caddy-frontend] [dynamic-profile-caddy-frontend]
< = jinja2-template-base < = jinja2-template-base
template = {{ software_parameter_dict['profile_caddy_frontend'] }} url = {{ software_parameter_dict['profile_caddy_frontend'] }}
filename = instance-caddy-frontend.cfg filename = instance-caddy-frontend.cfg
extra-context = extra-context =
import furl_module furl import furl_module furl
...@@ -49,7 +49,7 @@ extra-context = ...@@ -49,7 +49,7 @@ extra-context =
[dynamic-profile-caddy-replicate] [dynamic-profile-caddy-replicate]
< = jinja2-template-base < = jinja2-template-base
depends = ${caddyprofiledeps:recipe} depends = ${caddyprofiledeps:recipe}
template = {{ software_parameter_dict['profile_caddy_replicate'] }} url = {{ software_parameter_dict['profile_caddy_replicate'] }}
filename = instance-caddy-replicate.cfg filename = instance-caddy-replicate.cfg
extra-context = extra-context =
import subprocess_module subprocess import subprocess_module subprocess
...@@ -61,7 +61,7 @@ extra-context = ...@@ -61,7 +61,7 @@ extra-context =
[dynamic-profile-kedifa] [dynamic-profile-kedifa]
< = jinja2-template-base < = jinja2-template-base
template = {{ software_parameter_dict['profile_kedifa'] }} url = {{ software_parameter_dict['profile_kedifa'] }}
filename = instance-kedifa.cfg filename = instance-kedifa.cfg
extra-context = extra-context =
raw software_type kedifa raw software_type kedifa
......
...@@ -61,8 +61,8 @@ eggs = ...@@ -61,8 +61,8 @@ eggs =
[profile-common] [profile-common]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/instance-common.cfg.in url = ${:_profile_base_location_}/instance-common.cfg.in
rendered = ${buildout:directory}/instance-common.cfg output = ${buildout:directory}/instance-common.cfg
context = context =
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory key eggs_directory buildout:eggs-directory
...@@ -74,11 +74,11 @@ caucase_jinja2_library = ${caucase-jinja2-library:target} ...@@ -74,11 +74,11 @@ caucase_jinja2_library = ${caucase-jinja2-library:target}
# profiles # profiles
profile_caddy_frontend = ${profile-caddy-frontend:target} profile_caddy_frontend = ${profile-caddy-frontend:target}
profile_caddy_replicate = ${profile-caddy-replicate:target} profile_caddy_replicate = ${profile-caddy-replicate:target}
profile_common = ${profile-common:rendered} profile_common = ${profile-common:output}
profile_kedifa = ${profile-kedifa:target} profile_kedifa = ${profile-kedifa:target}
profile_logrotate_base = ${template-logrotate-base:rendered} profile_logrotate_base = ${template-logrotate-base:output}
profile_monitor = ${monitor-template:output} profile_monitor = ${monitor-template:output}
profile_monitor2 = ${monitor2-template:rendered} profile_monitor2 = ${monitor2-template:output}
profile_replicate_publish_slave_information = ${profile-replicate-publish-slave-information:target} profile_replicate_publish_slave_information = ${profile-replicate-publish-slave-information:target}
profile_slave_list = ${profile-slave-list:target} profile_slave_list = ${profile-slave-list:target}
...@@ -129,8 +129,8 @@ caucase_csr_sign_check = ${:bin_directory}/caucase-csr-sign-check ...@@ -129,8 +129,8 @@ caucase_csr_sign_check = ${:bin_directory}/caucase-csr-sign-check
[template] [template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/instance.cfg.in url = ${:_profile_base_location_}/instance.cfg.in
rendered = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
context = context =
section software_parameter_dict software-parameter-section section software_parameter_dict software-parameter-section
......
...@@ -290,8 +290,8 @@ command = {{ software_parameter_dict['htpasswd'] }} -cb ${:file} {{ slave_refere ...@@ -290,8 +290,8 @@ command = {{ software_parameter_dict['htpasswd'] }} -cb ${:file} {{ slave_refere
{#- Store certificates on fs #} {#- Store certificates on fs #}
[{{ cert_title }}] [{{ cert_title }}]
< = jinja2-template-base < = jinja2-template-base
template = {{ empty_template }} url = {{ empty_template }}
rendered = {{ cert_file }} output = {{ cert_file }}
extra-context = extra-context =
key content {{ cert_title + '-config:value' }} key content {{ cert_title + '-config:value' }}
{#- BBB: SlapOS Master non-zero knowledge BEGIN #} {#- BBB: SlapOS Master non-zero knowledge BEGIN #}
...@@ -312,8 +312,8 @@ value = {{ dumps(slave_instance.get(cert_name)) }} ...@@ -312,8 +312,8 @@ value = {{ dumps(slave_instance.get(cert_name)) }}
[{{cert_title}}] [{{cert_title}}]
< = jinja2-template-base < = jinja2-template-base
template = {{ empty_template }} url = {{ empty_template }}
rendered = {{ cert_file }} output = {{ cert_file }}
cert-content = {{ dumps(slave_instance.get('ssl_crt') + '\n' + slave_instance.get('ssl_ca_crt', '') + '\n' + slave_instance.get('ssl_key')) }} cert-content = {{ dumps(slave_instance.get('ssl_crt') + '\n' + slave_instance.get('ssl_ca_crt', '') + '\n' + slave_instance.get('ssl_key')) }}
extra-context = extra-context =
key content :cert-content key content :cert-content
...@@ -340,9 +340,9 @@ node-id = {{ node_id }} ...@@ -340,9 +340,9 @@ node-id = {{ node_id }}
[{{ slave_section_title }}] [{{ slave_section_title }}]
< = jinja2-template-base < = jinja2-template-base
rendered = {{ caddy_configuration_directory }}/${:filename} output = {{ caddy_configuration_directory }}/${:filename}
template = {{ template_default_slave_configuration }} url = {{ template_default_slave_configuration }}
extra-context = extra-context =
section slave_parameter {{ slave_configuration_section_name }} section slave_parameter {{ slave_configuration_section_name }}
...@@ -430,8 +430,8 @@ pid = {{ caddy_configuration['slave-introspection-pid-file'] }} ...@@ -430,8 +430,8 @@ pid = {{ caddy_configuration['slave-introspection-pid-file'] }}
[slave-introspection-config] [slave-introspection-config]
<= jinja2-template-base <= jinja2-template-base
template = {{ software_parameter_dict['template_slave_introspection_httpd_nginx'] }} url = {{ software_parameter_dict['template_slave_introspection_httpd_nginx'] }}
rendered = {{ frontend_configuration['slave-introspection-configuration'] }} output = {{ frontend_configuration['slave-introspection-configuration'] }}
extra-context = extra-context =
section slave_log_directory slave-log-directory-dict section slave_log_directory slave-log-directory-dict
section slave_htpasswd slave-htpasswd section slave_htpasswd slave-htpasswd
...@@ -440,7 +440,7 @@ extra-context = ...@@ -440,7 +440,7 @@ extra-context =
[slave-introspection] [slave-introspection]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = {{ software_parameter_dict['nginx'] }} command-line = {{ software_parameter_dict['nginx'] }}
-c ${slave-introspection-config:rendered} -c ${slave-introspection-config:output}
wrapper-path = {{ directory['service'] }}/slave-instrospection-nginx wrapper-path = {{ directory['service'] }}/slave-instrospection-nginx
hash-existing-files = ${buildout:directory}/software_release/buildout.cfg hash-existing-files = ${buildout:directory}/software_release/buildout.cfg
...@@ -491,18 +491,18 @@ update-command = ${:command} ...@@ -491,18 +491,18 @@ update-command = ${:command}
[kedifa-updater-mapping] [kedifa-updater-mapping]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
file = {{ kedifa_configuration['kedifa-updater-mapping-file'] }} file = {{ kedifa_configuration['kedifa-updater-mapping-file'] }}
template = inline: inline =
{%- for mapping in kedifa_updater_mapping %} {%- for mapping in kedifa_updater_mapping %}
{{ mapping[0] }} {{ mapping[1] }} {{ mapping[2] }} {{ mapping[0] }} {{ mapping[1] }} {{ mapping[2] }}
{%- endfor %} {%- endfor %}
rendered = ${:file} output = ${:file}
##<Backend haproxy> ##<Backend haproxy>
[backend-haproxy-configuration] [backend-haproxy-configuration]
< = jinja2-template-base < = jinja2-template-base
template = {{ template_backend_haproxy_configuration }} url = {{ template_backend_haproxy_configuration }}
rendered = ${backend-haproxy-config:file} output = ${backend-haproxy-config:file}
backend_slave_list = {{ dumps(sorted(backend_slave_list)) }} backend_slave_list = {{ dumps(sorted(backend_slave_list)) }}
extra-context = extra-context =
key backend_slave_list :backend_slave_list key backend_slave_list :backend_slave_list
...@@ -589,8 +589,8 @@ nginx_mime = {{ software_parameter_dict['nginx_mime'] }} ...@@ -589,8 +589,8 @@ nginx_mime = {{ software_parameter_dict['nginx_mime'] }}
[expose-csr-template] [expose-csr-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = {{ directory['expose-csr-etc'] }}/nginx.conf output = {{ directory['expose-csr-etc'] }}/nginx.conf
template = {{ template_expose_csr_nginx_conf }} url = {{ template_expose_csr_nginx_conf }}
context = context =
section configuration expose-csr-configuration section configuration expose-csr-configuration
...@@ -604,7 +604,7 @@ config-port = ${expose-csr-configuration:port} ...@@ -604,7 +604,7 @@ config-port = ${expose-csr-configuration:port}
[expose-csr] [expose-csr]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = {{ software_parameter_dict['nginx'] }} command-line = {{ software_parameter_dict['nginx'] }}
-c ${expose-csr-template:rendered} -c ${expose-csr-template:output}
url = https://[${expose-csr-configuration:ip}]:${expose-csr-configuration:port} url = https://[${expose-csr-configuration:ip}]:${expose-csr-configuration:port}
wrapper-path = {{ directory['service'] }}/expose-csr wrapper-path = {{ directory['service'] }}/expose-csr
......
...@@ -19,4 +19,4 @@ md5sum = 2e7c1d8c553b398dd68c875a9fa38cdb ...@@ -19,4 +19,4 @@ md5sum = 2e7c1d8c553b398dd68c875a9fa38cdb
[instance] [instance]
filename = instance.cfg.jinja2 filename = instance.cfg.jinja2
md5sum = 687ed460bebc18768ff7b7315e9b6de5 md5sum = b4a50217c68233eb0e2922fd7606a6be
...@@ -18,8 +18,8 @@ instance-caucased = {{ dumps(instance_caucased) }} ...@@ -18,8 +18,8 @@ instance-caucased = {{ dumps(instance_caucased) }}
[caucased] [caucased]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${context:instance-caucased} url = ${context:instance-caucased}
rendered = ${buildout:parts-directory}/instance-caucased.cfg output = ${buildout:parts-directory}/instance-caucased.cfg
monitor = {{ template_monitor }} monitor = {{ template_monitor }}
context = context =
key ipv6_set slap-configuration:ipv6 key ipv6_set slap-configuration:ipv6
...@@ -31,6 +31,6 @@ import-list = ...@@ -31,6 +31,6 @@ import-list =
[switch-softwaretype] [switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype recipe = slapos.cookbook:switch-softwaretype
default = caucased:rendered default = caucased:output
# XXX: When will this name finally go away ? # XXX: When will this name finally go away ?
RootSoftwareInstance = ${:default} RootSoftwareInstance = ${:default}
...@@ -14,12 +14,12 @@ url = ${:_profile_base_location_}/${:filename} ...@@ -14,12 +14,12 @@ url = ${:_profile_base_location_}/${:filename}
[instance] [instance]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
# XXX: "template.cfg" is hardcoded in instanciation recipe # XXX: "template.cfg" is hardcoded in instanciation recipe
rendered = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
template = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
context = context =
key bin_directory buildout:bin-directory key bin_directory buildout:bin-directory
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory key eggs_directory buildout:eggs-directory
key caucase_jinja2_library caucase-jinja2-library:target key caucase_jinja2_library caucase-jinja2-library:target
key instance_caucased instance-caucased:target key instance_caucased instance-caucased:target
key template_monitor monitor2-template:rendered key template_monitor monitor2-template:output
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
# not need these here). # not need these here).
[template-cloudooo] [template-cloudooo]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = e986de01a57161b32425f1cd3ccac924 md5sum = d1e4d7306c39f2ebc64d0407860d4301
[template-cloudooo-instance] [template-cloudooo-instance]
filename = instance-cloudooo.cfg.in filename = instance-cloudooo.cfg.in
md5sum = 3e6830c21c206b3ae1140375e5e63b46 md5sum = 90299c1dbdc5f983613794a8e9a7bc9d
...@@ -43,9 +43,6 @@ ...@@ -43,9 +43,6 @@
{% set section_list = [] -%} {% set section_list = [] -%}
{% set cloudooo_section_list = [] -%} {% set cloudooo_section_list = [] -%}
{% macro cloudooo(name) %}{% do cloudooo_section_list.append(name) %}{{ name }}{% endmacro -%} {% macro cloudooo(name) %}{% do cloudooo_section_list.append(name) %}{{ name }}{% endmacro -%}
[simplefile]
recipe = slapos.recipe.template:jinja2
template = inline:{{ '{{ content }}' }}
{% macro simplefile(section_name, file_path, content, mode='') -%} {% macro simplefile(section_name, file_path, content, mode='') -%}
{% set content_section_name = section_name ~ '-content' -%} {% set content_section_name = section_name ~ '-content' -%}
...@@ -53,10 +50,9 @@ template = inline:{{ '{{ content }}' }} ...@@ -53,10 +50,9 @@ template = inline:{{ '{{ content }}' }}
content = {{ dumps(content) }} content = {{ dumps(content) }}
[{{ section_name }}] [{{ section_name }}]
< = simplefile recipe = slapos.recipe.template
rendered = {{ file_path }} output = {{ file_path }}
context = key content {{ content_section_name }}:content inline = {{ '${' + content_section_name + ':content}' }}
mode = {{ mode }}
{%- endmacro %} {%- endmacro %}
...@@ -80,12 +76,12 @@ parts = ...@@ -80,12 +76,12 @@ parts =
[apache] [apache]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:services}/apache wrapper-path = ${directory:services}/apache
command-line = "{{ parameter_dict['apache'] }}/bin/httpd" -f "${apache-conf:rendered}" -DFOREGROUND command-line = "{{ parameter_dict['apache'] }}/bin/httpd" -f "${apache-conf:output}" -DFOREGROUND
[apache-conf] [apache-conf]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = {{ parameter_dict['template-apache-conf'] }} url = {{ parameter_dict['template-apache-conf'] }}
rendered = ${directory:apache-conf}/apache.conf output = ${directory:apache-conf}/apache.conf
context = section parameter_dict apache-conf-parameter-dict context = section parameter_dict apache-conf-parameter-dict
[apache-conf-parameter-dict] [apache-conf-parameter-dict]
...@@ -139,8 +135,8 @@ recipe = slapos.cookbook:publish.serialised ...@@ -139,8 +135,8 @@ recipe = slapos.cookbook:publish.serialised
[fontconfig-conf] [fontconfig-conf]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = {{ parameter_dict['template-fonts-conf'] }} url = {{ parameter_dict['template-fonts-conf'] }}
rendered = ${directory:etc}/fonts.conf output = ${directory:etc}/fonts.conf
context = context =
key cachedir directory:fontconfig-cache key cachedir directory:fontconfig-cache
key fonts :fonts key fonts :fonts
...@@ -160,7 +156,7 @@ recipe = slapos.cookbook:generic.cloudooo ...@@ -160,7 +156,7 @@ recipe = slapos.cookbook:generic.cloudooo
ip = {{ ipv4 }} ip = {{ ipv4 }}
environment = environment =
LD_LIBRARY_PATH = {{ parameter_dict['cairo'] }}/lib:{{ parameter_dict['cups'] }}/lib:{{ parameter_dict['cups'] }}/lib64:{{ parameter_dict['dbus'] }}/lib:{{ parameter_dict['dbus-glib'] }}/lib:{{ parameter_dict['file'] }}/lib:{{ parameter_dict['fontconfig'] }}/lib:{{ parameter_dict['freetype'] }}/lib:{{ parameter_dict['gcc'] }}/lib:{{ parameter_dict['gcc'] }}/lib64:{{ parameter_dict['glib'] }}/lib:{{ parameter_dict['glu'] }}/lib:{{ parameter_dict['libICE'] }}/lib:{{ parameter_dict['libSM'] }}/lib:{{ parameter_dict['libX11'] }}/lib:{{ parameter_dict['libXau'] }}/lib:{{ parameter_dict['libXdmcp'] }}/lib:{{ parameter_dict['libXext'] }}/lib:{{ parameter_dict['libXrender'] }}/lib:{{ parameter_dict['libexpat'] }}/lib:{{ parameter_dict['libffi'] }}/lib:{{ parameter_dict['libffi'] }}/lib64:{{ parameter_dict['libpng12'] }}/lib:{{ parameter_dict['libxcb'] }}/lib:{{ parameter_dict['mesa'] }}/lib:{{ parameter_dict['pixman'] }}/lib:{{ parameter_dict['xdamage'] }}/lib:{{ parameter_dict['xfixes'] }}/lib:{{ parameter_dict['zlib'] }}/lib LD_LIBRARY_PATH = {{ parameter_dict['cairo'] }}/lib:{{ parameter_dict['cups'] }}/lib:{{ parameter_dict['cups'] }}/lib64:{{ parameter_dict['dbus'] }}/lib:{{ parameter_dict['dbus-glib'] }}/lib:{{ parameter_dict['file'] }}/lib:{{ parameter_dict['fontconfig'] }}/lib:{{ parameter_dict['freetype'] }}/lib:{{ parameter_dict['gcc'] }}/lib:{{ parameter_dict['gcc'] }}/lib64:{{ parameter_dict['glib'] }}/lib:{{ parameter_dict['glu'] }}/lib:{{ parameter_dict['libICE'] }}/lib:{{ parameter_dict['libSM'] }}/lib:{{ parameter_dict['libX11'] }}/lib:{{ parameter_dict['libXau'] }}/lib:{{ parameter_dict['libXdmcp'] }}/lib:{{ parameter_dict['libXext'] }}/lib:{{ parameter_dict['libXrender'] }}/lib:{{ parameter_dict['libexpat'] }}/lib:{{ parameter_dict['libffi'] }}/lib:{{ parameter_dict['libffi'] }}/lib64:{{ parameter_dict['libpng12'] }}/lib:{{ parameter_dict['libxcb'] }}/lib:{{ parameter_dict['mesa'] }}/lib:{{ parameter_dict['pixman'] }}/lib:{{ parameter_dict['xdamage'] }}/lib:{{ parameter_dict['xfixes'] }}/lib:{{ parameter_dict['zlib'] }}/lib
FONTCONFIG_FILE = ${fontconfig-conf:rendered} FONTCONFIG_FILE = ${fontconfig-conf:output}
PATH = ${binary-link:target-directory} PATH = ${binary-link:target-directory}
LANG = C.UTF-8 LANG = C.UTF-8
mimetype_entry_addition = mimetype_entry_addition =
......
...@@ -16,7 +16,7 @@ cert = ${slap-connection:cert-file} ...@@ -16,7 +16,7 @@ cert = ${slap-connection:cert-file}
[jinja2-template-base] [jinja2-template-base]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = ${buildout:parts-directory}/${:_buildout_section_name_}/${:filename} output = ${buildout:parts-directory}/${:_buildout_section_name_}/${:filename}
extra-context = extra-context =
context = context =
key ipv6_set slap-configuration:ipv6 key ipv6_set slap-configuration:ipv6
...@@ -33,7 +33,7 @@ instance-parameter-dict = {{ dumps(cloudooo_parameter_dict) }} ...@@ -33,7 +33,7 @@ instance-parameter-dict = {{ dumps(cloudooo_parameter_dict) }}
[cloudooo-dynamic-template] [cloudooo-dynamic-template]
< = jinja2-template-base < = jinja2-template-base
template = {{ template_cloudooo_instance }} url = {{ template_cloudooo_instance }}
filename = instance-cloudooo.cfg filename = instance-cloudooo.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
...@@ -43,5 +43,5 @@ extra-context = ...@@ -43,5 +43,5 @@ extra-context =
[switch-softwaretype] [switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype recipe = slapos.cookbook:switch-softwaretype
default = cloudooo-dynamic-template:rendered default = cloudooo-dynamic-template:output
RootSoftwareInstance = ${:default} RootSoftwareInstance = ${:default}
...@@ -27,9 +27,8 @@ cert = ${slap-connection:cert-file} ...@@ -27,9 +27,8 @@ cert = ${slap-connection:cert-file}
< = template-cloudooo-base < = template-cloudooo-base
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
# XXX: "template.cfg" is hardcoded in instanciation recipe # XXX: "template.cfg" is hardcoded in instanciation recipe
rendered = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
template = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
mode = 640
[template-cloudooo-base] [template-cloudooo-base]
context = context =
...@@ -91,8 +90,8 @@ xfixes = ${xfixes:location} ...@@ -91,8 +90,8 @@ xfixes = ${xfixes:location}
xserver = ${xserver:location} xserver = ${xserver:location}
zlib = ${zlib:location} zlib = ${zlib:location}
template-apache-conf = ${template-apache-backend-conf:target} template-apache-conf = ${template-apache-backend-conf:target}
template-logrotate-base = ${template-logrotate-base:rendered} template-logrotate-base = ${template-logrotate-base:output}
template-monitor = ${monitor2-template:rendered} template-monitor = ${monitor2-template:output}
[template-cloudooo-instance] [template-cloudooo-instance]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
......
[instance.cfg] [instance.cfg]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = a24384487467a07e827edab17a0b7206 md5sum = 156dcfedd4b5fcbeefb3ac05a062edba
[runTestSuite.in] [runTestSuite.in]
_update_hash_filename_ = runTestSuite.in _update_hash_filename_ = runTestSuite.in
......
...@@ -10,7 +10,7 @@ develop-eggs-directory = ${buildout:develop-eggs-directory} ...@@ -10,7 +10,7 @@ develop-eggs-directory = ${buildout:develop-eggs-directory}
[publish-env-path] [publish-env-path]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
readme = Source the script to set up the environment. readme = Source the script to set up the environment.
script = ${cythonplus_env.sh:rendered} script = ${cythonplus_env.sh:output}
repository = ${cythonplus-repository:repository} repository = ${cythonplus-repository:repository}
[slap-configuration] [slap-configuration]
...@@ -34,12 +34,11 @@ shared = true ...@@ -34,12 +34,11 @@ shared = true
[runTestSuite] [runTestSuite]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
rendered = $${directory:bin}/$${:_buildout_section_name_} output = $${directory:bin}/$${:_buildout_section_name_}
template = ${runTestSuite.in:target} url = ${runTestSuite.in:target}
mode = 0755
context = context =
key tmpdir directory:tmp key tmpdir directory:tmp
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
key cythonplus_repository cythonplus-repository:location key cythonplus_repository cythonplus-repository:location
raw runTestSuite_interpreter ${runTestSuite_interpreter:bin-directory}/${runTestSuite_interpreter:interpreter} raw runTestSuite_interpreter ${runTestSuite_interpreter:bin-directory}/${runTestSuite_interpreter:interpreter}
raw cythonplus_env_sh ${cythonplus_env.sh:rendered} raw cythonplus_env_sh ${cythonplus_env.sh:output}
[instance] [instance]
filename = instance.cfg filename = instance.cfg
md5sum = ddd17fab15afa5a27cdc0761fbc8f34c md5sum = a4e19280bc672cc98e0fef241c8439ba
...@@ -11,7 +11,7 @@ parts = ...@@ -11,7 +11,7 @@ parts =
eggs-directory = ${buildout:eggs-directory} eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true offline = true
extends = ${monitor-template:rendered} extends = ${monitor-template:output}
# parameters # parameters
[instance-parameter] [instance-parameter]
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
# not need these here). # not need these here).
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = 6dcbe21f99aa6675e8e3b74bc9cbb0e6 md5sum = 5bd72da73a8b84f70f568686924d7d6c
[template-default] [template-default]
filename = instance-default.cfg.jinja.in filename = instance-default.cfg.jinja.in
md5sum = 536a28ff250c691ca374f75aa5f0aa76 md5sum = 0c9ea9fa7417885889a536ec2cf2093f
...@@ -7,7 +7,7 @@ eggs-directory = ${buildout:eggs-directory} ...@@ -7,7 +7,7 @@ eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true offline = true
extends = ${monitor2-template:rendered} extends = ${monitor2-template:output}
parts = parts =
testnode-service testnode-service
...@@ -97,21 +97,20 @@ hash-files = ...@@ -97,21 +97,20 @@ hash-files =
shell = ${bash:location}/bin/bash shell = ${bash:location}/bin/bash
[shellinabox] [shellinabox]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
# We cannot use slapos.cookbook:wrapper here because this recipe escapes too much # We cannot use slapos.cookbook:wrapper here because this recipe escapes too much
socket = $${directory:run}/siab.sock socket = $${directory:run}/siab.sock
mode = 0700 output = $${basedirectory:services}/shellinaboxd
rendered = $${basedirectory:services}/shellinaboxd inline =
template = inline:
#!/bin/sh #!/bin/sh
exec ${shellinabox:location}/bin/shellinaboxd \ exec ${shellinabox:location}/bin/shellinaboxd \
--unixdomain-only=$${:socket}:$(id -u):$(id -g):0600 \ --unixdomain-only=$${:socket}:$(id -u):$(id -g):0600 \
--service "/:$(id -u):$(id -g):HOME:$${shell-environment:shell} -l" --service "/:$(id -u):$(id -g):HOME:$${shell-environment:shell} -l"
[shellinabox-frontend-config] [shellinabox-frontend-config]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
rendered = $${directory:etc}/$${:_buildout_section_name_} output = $${directory:etc}/$${:_buildout_section_name_}
template = inline: inline =
https://$${:hostname}:$${:port} { https://$${:hostname}:$${:port} {
bind $${:ipv6} bind $${:ipv6}
tls self_signed tls self_signed
...@@ -131,15 +130,15 @@ username = testnode ...@@ -131,15 +130,15 @@ username = testnode
passwd = $${pwgen:passwd} passwd = $${pwgen:passwd}
cert-file = $${directory:shellinabox}/public.crt cert-file = $${directory:shellinabox}/public.crt
key-file = $${directory:shellinabox}/private.key key-file = $${directory:shellinabox}/private.key
url = https://$${:username}:$${:passwd}@$${:hostname}:$${:port} backend-url = https://$${:username}:$${:passwd}@$${:hostname}:$${:port}
[shellinabox-frontend] [shellinabox-frontend]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
wrapper-path = $${rootdirectory:bin}/$${:_buildout_section_name_} wrapper-path = $${rootdirectory:bin}/$${:_buildout_section_name_}
command-line = command-line =
${caddy:output} -conf $${shellinabox-frontend-config:rendered} -pidfile $${:pidfile} ${caddy:output} -conf $${shellinabox-frontend-config:output} -pidfile $${:pidfile}
url = $${shellinabox-frontend-config:url} url = $${shellinabox-frontend-config:backend-url}
hostname = $${shellinabox-frontend-config:ipv6} hostname = $${shellinabox-frontend-config:ipv6}
port = $${shellinabox-frontend-config:port} port = $${shellinabox-frontend-config:port}
pidfile = $${basedirectory:run}/$${:_buildout_section_name_}.pid pidfile = $${basedirectory:run}/$${:_buildout_section_name_}.pid
...@@ -152,7 +151,7 @@ command-line = ...@@ -152,7 +151,7 @@ command-line =
"kill -s USR1 $$(${coreutils:location}/bin/cat $${shellinabox-frontend:pidfile}) \ "kill -s USR1 $$(${coreutils:location}/bin/cat $${shellinabox-frontend:pidfile}) \
&& ${coreutils:location}/bin/sleep infinity" && ${coreutils:location}/bin/sleep infinity"
hash-files = hash-files =
$${shellinabox-frontend-config:rendered} $${shellinabox-frontend-config:output}
$${shellinabox-frontend:wrapper-path} $${shellinabox-frontend:wrapper-path}
[certificate-authority] [certificate-authority]
......
...@@ -17,12 +17,12 @@ cert = $${slap-connection:cert-file} ...@@ -17,12 +17,12 @@ cert = $${slap-connection:cert-file}
[switch_softwaretype] [switch_softwaretype]
recipe = slapos.cookbook:switch-softwaretype recipe = slapos.cookbook:switch-softwaretype
RootSoftwareInstance = $${:default} RootSoftwareInstance = $${:default}
default = instance-default:rendered default = instance-default:output
[instance-default] [instance-default]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${template-default:output} url = ${template-default:output}
rendered = $${buildout:directory}/instance-default.cfg output = $${buildout:directory}/instance-default.cfg
context = context =
import json json import json json
jsonkey default_parameter_dict :default-parameters jsonkey default_parameter_dict :default-parameters
......
...@@ -22,10 +22,13 @@ parts = ...@@ -22,10 +22,13 @@ parts =
git git
apache apache
[python]
part = python3
[eggs] [eggs]
recipe = zc.recipe.egg recipe = zc.recipe.egg
eggs = eggs =
erp5.util[testnode,benchmark,scalability_tester] erp5.util[testnode,benchmark]
${lxml-python:egg} ${lxml-python:egg}
...@@ -33,13 +36,11 @@ eggs = ...@@ -33,13 +36,11 @@ eggs =
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
mode = 0644
[template-default] [template-default]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template-default.cfg.jinja output = ${buildout:directory}/template-default.cfg.jinja
mode = 0644
[versions] [versions]
dnspython = 1.15.0 dnspython = 1.15.0
...@@ -47,14 +48,13 @@ PyXML = 0.8.5 ...@@ -47,14 +48,13 @@ PyXML = 0.8.5
WebOb = 1.8.5 WebOb = 1.8.5
WebTest = 2.0.33 WebTest = 2.0.33
soupsieve = 1.8 soupsieve = 1.8
#gitdb2 = 2.0.4
#smmap2 = 2.0.4
waitress = 1.4.4 waitress = 1.4.4
z3c.etestbrowser = 2.0.1 z3c.etestbrowser = 3.0.1
zope.testbrowser = 5.3.2 zope.testbrowser = 5.3.2
WSGIProxy2 = 0.4.6 WSGIProxy2 = 0.4.6
beautifulsoup4 = 4.7.1 beautifulsoup4 = 4.7.1
zope.cachedescriptors = 4.3.1 zope.cachedescriptors = 4.3.1
zope.event = 4.4 zope.event = 4.4
zope.schema = 4.9.3 zope.schema = 4.9.3
slapos.tool.nosqltester = 0.0.4.dev-r45972 zope.deferredimport = 4.3.1
zope.proxy = 4.3.5
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
[template-erp5testnode] [template-erp5testnode]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = bbfe2f0e83df4d6cd2120c0ef3c483cd md5sum = 681f4159e4ac2542d0fbc7a894e43d79
[buildout] [buildout]
extends = extends =
buildout.hash.cfg buildout.hash.cfg
https://lab.nexedi.com/nexedi/slapos/raw/1.0.182/software/kvm/software.cfg https://lab.nexedi.com/nexedi/slapos/raw/1.0.232/software/kvm/software.cfg
parts = parts =
python-with-eggs python-with-eggs
template-deploy-test template-deploy-test
......
...@@ -18,8 +18,8 @@ var = $${:home}/var ...@@ -18,8 +18,8 @@ var = $${:home}/var
log = $${:var}/log log = $${:var}/log
[log-writer] [log-writer]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
template = inline:#!/bin/sh inline =
#!/bin/sh
echo "Hello : $(date)" >> $${directory:log}/log.log echo "Hello : $(date)" >> $${directory:log}/log.log
rendered = $${directory:script}/log-writer output = $${directory:script}/log-writer
mode = 700
...@@ -12,4 +12,3 @@ recipe = slapos.recipe.template ...@@ -12,4 +12,3 @@ recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg url = ${:_profile_base_location_}/instance.cfg
output = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
md5sum = 9fccb9600a085691ab0f9a20cd615c01 md5sum = 9fccb9600a085691ab0f9a20cd615c01
mode = 0644
...@@ -44,7 +44,7 @@ recipe = slapos.cookbook:request ...@@ -44,7 +44,7 @@ recipe = slapos.cookbook:request
software-url = ${slap-connection:software-release-url} software-url = ${slap-connection:software-release-url}
software-type = kvm-resilient software-type = kvm-resilient
name = Resilient Instance (Root Instance) name = Resilient Instance (Root Instance)
{% for key, value in slapparameter_dict.get('cluster', {}).iteritems() -%} {% for key, value in slapparameter_dict.get('cluster', {}).items() -%}
config-{{ key }} = {{ dumps(value) }} config-{{ key }} = {{ dumps(value) }}
{% endfor -%} {% endfor -%}
config-virtual-hard-drive-url = ${slap-parameter:virtual-hard-drive-url} config-virtual-hard-drive-url = ${slap-parameter:virtual-hard-drive-url}
......
...@@ -43,7 +43,7 @@ recipe = slapos.cookbook:request ...@@ -43,7 +43,7 @@ recipe = slapos.cookbook:request
software-url = ${slap-connection:software-release-url} software-url = ${slap-connection:software-release-url}
software-type = resilient software-type = resilient
name = Resilient Instance (Root Instance) name = Resilient Instance (Root Instance)
{% for key, value in slapparameter_dict.get('cluster', {}).iteritems() -%} {% for key, value in slapparameter_dict.get('cluster', {}).items() -%}
config-{{ key }} = {{ dumps(value) }} config-{{ key }} = {{ dumps(value) }}
{% endfor -%} {% endfor -%}
config-resiliency-backup-periodicity = */10 * * * * config-resiliency-backup-periodicity = */10 * * * *
......
...@@ -6,12 +6,12 @@ default = $${:test} ...@@ -6,12 +6,12 @@ default = $${:test}
RootSoftwareInstance = $${:test} RootSoftwareInstance = $${:test}
# Used for the test of resiliency. The system wants a "test" software_type. # Used for the test of resiliency. The system wants a "test" software_type.
test = dynamic-template-resilient-test:rendered test = dynamic-template-resilient-test:output
[dynamic-template-resilient-test] [dynamic-template-resilient-test]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${template-resilient-test:target} url = ${template-resilient-test:target}
rendered = $${buildout:directory}/template-resilient-test.cfg output = $${buildout:directory}/template-resilient-test.cfg
bin-directory = ${buildout:bin-directory} bin-directory = ${buildout:bin-directory}
context = context =
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
......
...@@ -12,7 +12,7 @@ md5sum = dd82c771f6f7738fb4b0fc1330ed8236 ...@@ -12,7 +12,7 @@ md5sum = dd82c771f6f7738fb4b0fc1330ed8236
[template-resilient-test] [template-resilient-test]
filename = instance-kvm-resilient-test.cfg.jinja2 filename = instance-kvm-resilient-test.cfg.jinja2
md5sum = 71ddbdeb8769bcb0ebb3c9407ef7e36c md5sum = 5f255502973530181ee45d93fa00a3c4
# Ingest extra-context, on a the final template-resilient-test rendering # Ingest extra-context, on a the final template-resilient-test rendering
# always ingest raw values. # always ingest raw values.
extra-context = extra-context =
......
...@@ -7,7 +7,7 @@ parts += template-erp5testnode ...@@ -7,7 +7,7 @@ parts += template-erp5testnode
[template-resilient-test] [template-resilient-test]
filename = instance-resilient-test.cfg.jinja2 filename = instance-resilient-test.cfg.jinja2
md5sum = be4adbc196f07f5e39ca78401dfa53ec md5sum = e4b04aa6fd3413bc6ae38823abdcc8fa
# We have to use an extra level of indentation here because this is substituted # We have to use an extra level of indentation here because this is substituted
# during software buildout to generate instance buildout, but the # during software buildout to generate instance buildout, but the
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# not need these here). # not need these here).
[instance-profile] [instance-profile]
filename = instance.cfg filename = instance.cfg
md5sum = c265bf7ec199190ba9f77960cac5da38 md5sum = 41f5acc071609a0c4b5ada295ede6bac
[template-fluentd] [template-fluentd]
filename = instance-fluentd.cfg filename = instance-fluentd.cfg
......
...@@ -8,7 +8,7 @@ offline = true ...@@ -8,7 +8,7 @@ offline = true
[switch-softwaretype] [switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype recipe = slapos.cookbook:switch-softwaretype
default = dynamic-template-fluentd:rendered default = dynamic-template-fluentd:output
RootSoftwareInstance = $${:default} RootSoftwareInstance = $${:default}
[directory] [directory]
...@@ -29,11 +29,11 @@ cert = $${slap_connection:cert_file} ...@@ -29,11 +29,11 @@ cert = $${slap_connection:cert_file}
[dynamic-template-fluentd] [dynamic-template-fluentd]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${template-fluentd:output} url = ${template-fluentd:output}
rendered = $${buildout:directory}/instance-fluentd.cfg output = $${buildout:directory}/instance-fluentd.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
context = context =
key fluentd_agent_conf fluentd-agent-conf:rendered key fluentd_agent_conf fluentd-agent-conf:output
key port_list fluentd-conf:port-list key port_list fluentd-conf:port-list
section directory directory section directory directory
...@@ -46,9 +46,6 @@ init = ...@@ -46,9 +46,6 @@ init =
options['port-list'] = re.findall(r'<source>.*port (\d+).*<\/source>', options['text'], re.DOTALL) options['port-list'] = re.findall(r'<source>.*port (\d+).*<\/source>', options['text'], re.DOTALL)
[fluentd-agent-conf] [fluentd-agent-conf]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
template = inline:{{ conf }} inline = $${fluentd-conf:text}
rendered = $${directory:etc}/fluentd-agent.conf output = $${directory:etc}/fluentd-agent.conf
mode = 0644
context =
key conf fluentd-conf:text
...@@ -15,7 +15,6 @@ part = python3 ...@@ -15,7 +15,6 @@ part = python3
[template-base] [template-base]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
mode = 0644
[instance-profile] [instance-profile]
< = template-base < = template-base
......
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
[instance-cfg] [instance-cfg]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = c24f3241af0123c9570a60ccc0fb8fdc md5sum = 38c79a4952a7cb63698135f1d1ed6c8c
...@@ -51,34 +51,35 @@ storage-path = $${directory:data}/.passwd ...@@ -51,34 +51,35 @@ storage-path = $${directory:data}/.passwd
username = admin username = admin
[stat-password] [stat-password]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
template = inline: inline =
$${admin-password:username}:$${admin-password:passwd} $${admin-password:username}:$${admin-password:passwd}
rendered = $${directory:data}/passwd output = $${directory:data}/passwd
[ice-servers.json] [ice-servers.json]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
template = inline: inline =
$${slap-configuration:configuration.ice-servers.json} $${slap-configuration:configuration.ice-servers.json}
rendered = $${directory:data}/ice-servers.json output = $${directory:data}/ice-servers.json
[groups-json] [groups-json]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
template = inline:{ inline =
{
"public":true, "public":true,
"op": [{"username":"$${admin-password:username}","password":"$${admin-password:passwd}"}], "op": [{"username":"$${admin-password:username}","password":"$${admin-password:passwd}"}],
"other": [], "other": [],
"presenter": [{"username": "", "password": "nexedi"}] "presenter": [{"username": "", "password": "nexedi"}]
} }
rendered = $${directory:groups}/public.json output = $${directory:groups}/public.json
[galene-wrapper] [galene-wrapper]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template
port = 8443 port = 8443
ip = $${slap-configuration:ipv6-random} ip = $${slap-configuration:ipv6-random}
template = inline =
inline:#!/bin/sh #!/bin/sh
ulimit -n $(ulimit -Hn) ulimit -n $(ulimit -Hn)
exec ${gowork:bin}/galene \ exec ${gowork:bin}/galene \
-static ${galene:location}/static \ -static ${galene:location}/static \
...@@ -87,7 +88,7 @@ template = ...@@ -87,7 +88,7 @@ template =
-data $${directory:data} \ -data $${directory:data} \
-http [$${:ip}]:$${:port} \ -http [$${:ip}]:$${:port} \
-turn "" -turn ""
rendered = $${directory:services}/galene output = $${directory:services}/galene
depends = depends =
$${ice-servers.json:recipe} $${ice-servers.json:recipe}
$${groups-json:recipe} $${groups-json:recipe}
......
...@@ -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 = 47e8092404feaf3f28ee6469523689ac md5sum = 8e8edd7dadb9c331fdba826312e7e8d2
[watcher] [watcher]
_update_hash_filename_ = watcher.in _update_hash_filename_ = watcher.in
...@@ -42,7 +42,7 @@ md5sum = 52d18b521b8cd16352fc88b1e1d79d53 ...@@ -42,7 +42,7 @@ md5sum = 52d18b521b8cd16352fc88b1e1d79d53
[gitlab-unicorn-startup.in] [gitlab-unicorn-startup.in]
_update_hash_filename_ = gitlab-unicorn-startup.in _update_hash_filename_ = gitlab-unicorn-startup.in
md5sum = aff91edaf9786c213db8ea703ab3571e md5sum = b0c3d465a8aaad9d2274934dcf208645
[gitlab.yml.in] [gitlab.yml.in]
_update_hash_filename_ = template/gitlab.yml.in _update_hash_filename_ = template/gitlab.yml.in
...@@ -54,11 +54,11 @@ md5sum = 0f1ec4077dab586cc003ae13f689eda2 ...@@ -54,11 +54,11 @@ md5sum = 0f1ec4077dab586cc003ae13f689eda2
[instance-gitlab.cfg.in] [instance-gitlab.cfg.in]
_update_hash_filename_ = instance-gitlab.cfg.in _update_hash_filename_ = instance-gitlab.cfg.in
md5sum = f099d01baefe41c8f0944c2437b30881 md5sum = 0b023c7efd027f65b14e752484be2ec7
[instance-gitlab-export.cfg.in] [instance-gitlab-export.cfg.in]
_update_hash_filename_ = instance-gitlab-export.cfg.in _update_hash_filename_ = instance-gitlab-export.cfg.in
md5sum = 2af7dcf63f74e5edc53a3ff11fa4989b md5sum = 9ed8220bb3ad71ff7e8638354127412c
[instance-gitlab-test.cfg.in] [instance-gitlab-test.cfg.in]
_update_hash_filename_ = instance-gitlab-test.cfg.in _update_hash_filename_ = instance-gitlab-test.cfg.in
......
...@@ -73,5 +73,5 @@ $RAKE cache:clear || die "cache:clear failed" ...@@ -73,5 +73,5 @@ $RAKE cache:clear || die "cache:clear failed"
# 3. finally exec to unicorn # 3. finally exec to unicorn
exec {{ gitlab_unicorn }} \ exec {{ gitlab_unicorn }} \
-E production \ -E production \
-c {{ unicorn_rb.rendered }} \ -c {{ unicorn_rb.output }} \
{{ gitlab_work.location }}/config.ru {{ gitlab_work.location }}/config.ru
...@@ -60,8 +60,8 @@ output = ${directory:srv}/exporter.exclude ...@@ -60,8 +60,8 @@ output = ${directory:srv}/exporter.exclude
# this section should be added only on runner import instance # this section should be added only on runner import instance
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
mode = 0700 mode = 0700
template= {{ gitlab_restore_sh_in }} url = {{ gitlab_restore_sh_in }}
rendered= ${directory:srv}/runner-import-restore output= ${directory:srv}/runner-import-restore
context = context =
raw bash_bin {{ bash_bin }} raw bash_bin {{ bash_bin }}
raw go_work_bin {{ gopath_bin }} raw go_work_bin {{ gopath_bin }}
...@@ -74,7 +74,7 @@ context = ...@@ -74,7 +74,7 @@ context =
raw unicorn_script ${service-unicorn:wrapper-path} raw unicorn_script ${service-unicorn:wrapper-path}
raw sidekiq_script ${service-sidekiq:wrapper-path} raw sidekiq_script ${service-sidekiq:wrapper-path}
raw gitlab_backup_dir ${gitlab-backup-directory:backup-gitlab.git} raw gitlab_backup_dir ${gitlab-backup-directory:backup-gitlab.git}
raw redis_pid_file ${service-redis:pid_file} raw redis_pid_file ${service-redis:pid-file}
raw postgres_pid_file ${service-postgresql:pgdata-directory}/postmaster.pid raw postgres_pid_file ${service-postgresql:pgdata-directory}/postmaster.pid
raw gitlab_work_location ${gitlab-work:location} raw gitlab_work_location ${gitlab-work:location}
raw promise_lab_location ${directory:promise.slow} raw promise_lab_location ${directory:promise.slow}
This diff is collapsed.
...@@ -13,9 +13,9 @@ offline = true ...@@ -13,9 +13,9 @@ offline = true
[switch-softwaretype] [switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype recipe = slapos.cookbook:switch-softwaretype
gitlab = instance-gitlab.cfg:rendered gitlab = instance-gitlab.cfg:output
gitlab-export = instance-gitlab-export.cfg:rendered gitlab-export = instance-gitlab-export.cfg:output
gitlab-test = instance-gitlab-test.cfg:rendered gitlab-test = instance-gitlab-test.cfg:output
RootSoftwareInstance = $${:gitlab} RootSoftwareInstance = $${:gitlab}
# TODO -import, -pull-backup # TODO -import, -pull-backup
...@@ -56,7 +56,7 @@ configuration.icp_license = ...@@ -56,7 +56,7 @@ configuration.icp_license =
[instance-cfg] [instance-cfg]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
mode = 0644 mode = 0644
rendered= $${buildout:directory}/$${:_buildout_section_name_} output= $${buildout:directory}/$${:_buildout_section_name_}
context = context =
import os os import os os
import pwd pwd import pwd pwd
...@@ -79,7 +79,7 @@ context = ...@@ -79,7 +79,7 @@ context =
raw git ${git:location}/bin/git raw git ${git:location}/bin/git
raw git_location ${git:location} raw git_location ${git:location}
raw gitaly_location ${gitaly-repository:location} raw gitaly_location ${gitaly-repository:location}
raw gitlab_export ${gitlab-export:rendered} raw gitlab_export ${gitlab-export:output}
raw gitlab_workhorse ${gowork:bin}/gitlab-workhorse raw gitlab_workhorse ${gowork:bin}/gitlab-workhorse
raw gopath_bin ${gowork:bin} raw gopath_bin ${gowork:bin}
raw gunzip_bin ${gzip:location}/bin/gunzip raw gunzip_bin ${gzip:location}/bin/gunzip
...@@ -95,14 +95,14 @@ context = ...@@ -95,14 +95,14 @@ context =
raw redis_binprefix ${redis28:location}/bin raw redis_binprefix ${redis28:location}/bin
raw ruby_location ${bundler-4gitlab:ruby-location} raw ruby_location ${bundler-4gitlab:ruby-location}
raw tar_location ${tar:location} raw tar_location ${tar:location}
raw watcher ${watcher:rendered} raw watcher ${watcher:output}
raw xnice_repository_location ${xnice-repository:location} raw xnice_repository_location ${xnice-repository:location}
raw yarn_location ${yarn:location} raw yarn_location ${yarn:location}
# config files # config files
raw database_yml_in ${database.yml.in:target} raw database_yml_in ${database.yml.in:target}
raw gitconfig_in ${gitconfig.in:target} raw gitconfig_in ${gitconfig.in:target}
raw monitor_template ${monitor2-template:rendered} raw monitor_template ${monitor2-template:output}
raw gitlab_shell_config_yml_in ${gitlab-shell-config.yml.in:target} raw gitlab_shell_config_yml_in ${gitlab-shell-config.yml.in:target}
raw gitlab_unicorn_startup_in ${gitlab-unicorn-startup.in:target} raw gitlab_unicorn_startup_in ${gitlab-unicorn-startup.in:target}
raw gitlab_yml_in ${gitlab.yml.in:target} raw gitlab_yml_in ${gitlab.yml.in:target}
...@@ -121,18 +121,18 @@ context-extra = ...@@ -121,18 +121,18 @@ context-extra =
[instance-gitlab.cfg] [instance-gitlab.cfg]
<= instance-cfg <= instance-cfg
template= ${instance-gitlab.cfg.in:target} url = ${instance-gitlab.cfg.in:target}
[instance-gitlab-export.cfg] [instance-gitlab-export.cfg]
<= instance-cfg <= instance-cfg
template= ${instance-gitlab-export.cfg.in:target} url = ${instance-gitlab-export.cfg.in:target}
context-extra = context-extra =
raw instance_gitlab_cfg $${instance-gitlab.cfg:rendered} raw instance_gitlab_cfg $${instance-gitlab.cfg:output}
[instance-gitlab-test.cfg] [instance-gitlab-test.cfg]
<= instance-cfg <= instance-cfg
template= ${instance-gitlab-test.cfg.in:target} url = ${instance-gitlab-test.cfg.in:target}
context-extra = context-extra =
raw instance_gitlab_cfg $${instance-gitlab.cfg:rendered} raw instance_gitlab_cfg $${instance-gitlab.cfg:output}
raw instance_gitlab_export_cfg $${instance-gitlab-export.cfg:rendered} raw instance_gitlab_export_cfg $${instance-gitlab-export.cfg:output}
raw gitlab_demo_backup_path ${gitlab-demo-backup.git:location} raw gitlab_demo_backup_path ${gitlab-demo-backup.git:location}
...@@ -319,8 +319,8 @@ output = ${buildout:directory}/instance.cfg ...@@ -319,8 +319,8 @@ output = ${buildout:directory}/instance.cfg
# macro: download a shell script and put it rendered into <software>/bin/ # macro: download a shell script and put it rendered into <software>/bin/
[binsh] [binsh]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template= ${:_profile_base_location_}/${:_update_hash_filename_} url = ${:_profile_base_location_}/${:_update_hash_filename_}
rendered= ${buildout:bin-directory}/${:_buildout_section_name_} output= ${buildout:bin-directory}/${:_buildout_section_name_}
mode = 0755 mode = 0755
context = context =
section bash bash section bash bash
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
[instance-profile] [instance-profile]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 3ccdd2299e759488545b62368c7a0b91 md5sum = 6fb42f5663864789ff7b375a9a86888e
[influxdb-config-file] [influxdb-config-file]
filename = influxdb-config-file.cfg.in filename = influxdb-config-file.cfg.in
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment