Commit af575a66 authored by Rafael Monnerat's avatar Rafael Monnerat

Update Release Candidate

parents 9c96044c 49433038
...@@ -14,3 +14,4 @@ slapos.cookbook.egg-info ...@@ -14,3 +14,4 @@ slapos.cookbook.egg-info
.eggs/ .eggs/
*.egg/ *.egg/
TEST_KNOWN_HOSTS TEST_KNOWN_HOSTS
node_modules
...@@ -38,9 +38,9 @@ md5sum = 2202b18f269ad606d70e1864857ed93c ...@@ -38,9 +38,9 @@ md5sum = 2202b18f269ad606d70e1864857ed93c
# inspired on http://old.aclark.net/team/aclark/blog/a-lamp-buildout-for-wordpress-and-other-php-apps/ # inspired on http://old.aclark.net/team/aclark/blog/a-lamp-buildout-for-wordpress-and-other-php-apps/
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
shared = false shared = false
version = 2.4.33 version = 2.4.37
url = https://archive.apache.org/dist/httpd/httpd-${:version}.tar.bz2 url = https://archive.apache.org/dist/httpd/httpd-${:version}.tar.bz2
md5sum = 6ef469d3f16fffeb688bc6e0346823e5 md5sum = 6a36e742180ee74bff97b28eee90c3f7
pre-configure = pre-configure =
cp -ar ${apr:location}/apr-${apr:version} srclib/apr/ && cp -ar ${apr:location}/apr-${apr:version} srclib/apr/ &&
cp -ar ${apr-util:location}/apr-util-${apr-util:version} srclib/apr-util cp -ar ${apr-util:location}/apr-util-${apr-util:version} srclib/apr-util
......
# ChromeDriver - Webdriver for Chrome
# http://chromedriver.chromium.org/
# This is a binary download with wrapper scripts.
[buildout]
extends =
../chromium/buildout.cfg
../nss/buildout.cfg
../nspr/buildout.cfg
parts =
chromedriver-wrapper
[chromedriver-wrapper-2.41]
<= chromedriver-wrapper
wrapper-name = chromedriver-2.41
part = ${chromedriver-2.41:location}
[chromedriver-wrapper]
# generate a wrapper named ${:wrapper-name} setting $LD_LIBRARY_PATH
# to run chromedriver installed from ${:part}
wrapper-name = chromedriver
part = ${chromedriver:location}
recipe = slapos.recipe.build
location = ${buildout:bin-directory}/${:wrapper-name}
script =
chromedriver = self.options['part']
part = self.buildout[os.path.basename(chromedriver)]
with open(%(location)r, 'w') as f:
f.write("""#!/bin/sh -e
cd {}
export LD_LIBRARY_PATH=$PWD:{}
export PATH={}:$PATH
exec ./chromedriver "$@"
""".format(
chromedriver,
':'.join(part['library'].split()),
':'.join(part['path'].split()),
))
os.fchmod(f.fileno(), 0o755)
[chromedriver]
<= chromedriver-2.41
[chromedriver-2.41]
<= chromedriver-download
version = 2.41
# Supports Chrome v67-69
md5sum-x86_64 = fbd8b9561575054e0e7e9cc53b680a70
[chromedriver-download]
# Installs chromedriver ${version}.
# This chromedriver is not usable directly, it needs a wrapper.
version =
md5sum-x86_64 =
recipe = slapos.recipe.build
x86-64 = https://chromedriver.storage.googleapis.com/${:version}/chromedriver_linux64.zip ${:md5sum-x86_64}
library =
${nss:location}/lib
${nspr:location}/lib
path =
script =
url, md5sum = self.options[guessPlatform()].split()
extract_dir = self.extract(self.download(url, md5sum))
os.mkdir(%(location)r)
shutil.copy(extract_dir + '/chromedriver', %(location)r)
# Chromium binary build, from "Downloading old builds of Chrome / Chromium" of
# https://www.chromium.org/getting-involved/download-chromium
# Currently, only Linux_x64 is supported.
[buildout] [buildout]
# chromium binary is linking to libudev, that can be provided by # chromium binary is linking to libudev, that can be provided by
# component/systemd. but current component/systemd can be built only # component/systemd. but current component/systemd can be built only
# with Linux kernel >= 3.7. so libudev is not included in # with Linux kernel >= 3.7. so libudev is not included in
# LD_LIBRARY_PATH below intentionally and libudev should be installed # LD_LIBRARY_PATH below intentionally and libudev should be installed
# in the system. # in the system.
extends = extends =
../alsa/buildout.cfg
../coreutils/buildout.cfg ../coreutils/buildout.cfg
../cups/buildout.cfg ../cups/buildout.cfg
../dbus/buildout.cfg ../dbus/buildout.cfg
...@@ -14,6 +19,7 @@ extends = ...@@ -14,6 +19,7 @@ extends =
../gettext/buildout.cfg ../gettext/buildout.cfg
../glib/buildout.cfg ../glib/buildout.cfg
../gtk-2/buildout.cfg ../gtk-2/buildout.cfg
../gtk-3/buildout.cfg
../libexpat/buildout.cfg ../libexpat/buildout.cfg
../libffi/buildout.cfg ../libffi/buildout.cfg
../libpng/buildout.cfg ../libpng/buildout.cfg
...@@ -27,77 +33,133 @@ extends = ...@@ -27,77 +33,133 @@ extends =
../zlib/buildout.cfg ../zlib/buildout.cfg
parts = parts =
chromium chromium-wrapper
[chromium-wrapper]
# Install a chromium wrapper named ${:wrapper-name} in buildout's bin-directory,
# wrapping chromium installed in ${:part}
# This [chromium-wrapper] installs the default chromium with name `chromium` and
# can also be used as a macro to install under a different name.
wrapper-name = chromium
part = ${chromium:location}
recipe = slapos.recipe.build
location = ${buildout:bin-directory}/${:wrapper-name}
script =
chromeium = self.options['part']
part = self.buildout[os.path.basename(chromeium)]
with open(%(location)r, 'w') as f:
f.write("""#!/bin/sh -e
cd {}
# this also needs a $FONTCONFIG_FILE set, otherwise system fonts will be used and if
# no system fonts are available, chrome will refuse to start with this error:
# FATAL:platform_font_linux.cc(83)] Check failed: InitDefaultFont(). Could not find the default font
export LD_LIBRARY_PATH=$PWD:{}
export PATH={}:$PATH
exec ./chrome --disable-setuid-sandbox --no-sandbox --disable-gpu $@
""".format(
chromeium,
':'.join(part['library'].split()),
':'.join(part['path'].split()),
))
os.fchmod(f.fileno(), 0o755)
[chromium-wrapper-69]
<= chromium-wrapper
wrapper-name = chromium-69
part = ${chromium-69:location}
[chromium] [chromium]
<= chromium-69
[chromium-69]
<= chromium-download
version = 69.0.3497.0
revision_x86-64 = 576753
md5sum-x86_64 = 08ac27fd40ace4ca8dfbd1db403deccb
generation-x86_64 = 1532051976706023
[chromium-download]
# macro to download a binary build of chromium and generate a
# wrapper as chrome-slapos in the part directory
# the full version tag
version =
# needs the following URL parts:
# revision is from the "base position"
revision_x86-64 =
# generation is in the final download URL
generation-x86_64 =
# this is the md5sum of the downloaded archive
md5sum-x86_64 =
recipe = slapos.recipe.build recipe = slapos.recipe.build
slapos_promise = slapos_promise =
file:chrome file:chrome
file:chrome-wrapper
file:chrome-slapos
# How to get the revision :
# stable : https://www.googleapis.com/download/storage/v1/b/chromium-browser-continuous/o/Linux_x64%2FLAST_CHANGE?alt=media
# snapshot : https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media
revision_x86 = 382014
revision_x86-64 = 382014
revision_mac = 381909
linux_x86 = https://www.googleapis.com/download/storage/v1/b/chromium-browser-continuous/o/Linux%2F${:revision_x86}%2Fchrome-linux.zip?alt=media x86-64 = https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${:revision_x86-64}%2Fchrome-linux.zip?generation=${:generation-x86_64}&alt=media ${:md5sum-x86_64}
linux_x86-64 = https://www.googleapis.com/download/storage/v1/b/chromium-browser-continuous/o/Linux_x64%2F${:revision_x86-64}%2Fchrome-linux.zip?alt=media ef2c476b1f059e9aa026bbac1872368d
mac_x86-64 = https://www.googleapis.com/download/storage/v1/b/chromium-browser-continuous/o/Mac%2F${:revision_mac}%2Fchrome-linux.zip?alt=media
library =
${atk:location}/lib
${at-spi2-atk:location}/lib
${alsa:location}/lib
${cairo:location}/lib
${cups:location}/lib
${cups:location}/lib64
${dbus:location}/lib/
${dbus-glib:location}/lib/
${fontconfig:location}/lib/
${gdk-pixbuf:location}/lib
${gettext:location}/lib
${glib:location}/lib
${gtk-3:location}/lib
${harfbuzz:location}/lib
${libX11:location}/lib
${libXau:location}/lib
${libXcomposite:location}/lib
${libXcursor:location}/lib
${libXext:location}/lib
${libXi:location}/lib
${libXrender:location}/lib/
${libXtst:location}/lib
${libXScrnSaver:location}/lib
${libXrandr:location}/lib
${libexpat:location}/lib
${libffi:location}/lib
${libpng:location}/lib
${libpng12:location}/lib
${libxcb:location}/lib
${libxml2:location}/lib
${mesa:location}/lib
${nspr:location}/lib
${nss:location}/lib
${pango:location}/lib
${pcre:location}/lib
${pixman:location}/lib
${sqlite3:location}/lib
${xdamage:location}/lib
${xfixes:location}/lib
${zlib:location}/lib
path =
${fontconfig:location}/bin
script = script =
#If part directory already exist, will just throw an error. url, md5sum = self.options[guessPlatform()].split()
extract_dir = self.extract(self.download(url, md5sum))
self.copyTree(guessworkdir(extract_dir), %(location)r)
# XXX adjust some permissions
import os import os
platform = '%%s_%%s' %% (guessOperatingSystem(), guessPlatform())
if not self.options.get('url'): self.options['url'], self.options['md5sum'] = self.options[platform].split(' ')
extract_dir = self.extract(self.download(self.options['url'], self.options.get('md5sum')))
workdir = guessworkdir(extract_dir)
self.copyTree(workdir, "%(location)s")
wrapper_location = os.path.join("%(location)s", "chrome-slapos")
wrapper = open(wrapper_location, 'w')
wrapper.write("""#!/bin/sh
export LD_LIBRARY_PATH="%(location)s"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${atk:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${cairo:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${cups:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${dbus:location}/lib/"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${dbus-glib:location}/lib/"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${fontconfig:location}/lib/"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${gdk-pixbuf:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${gettext:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${glib:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${gtk-2:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${harfbuzz:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libX11:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libXau:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libXcomposite:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libXcursor:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libXext:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libXi:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libXrender:location}/lib/"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libXtst:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libexpat:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libffi:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libpng:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libpng12:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libxcb:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libxml2:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${mesa:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${nspr:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${nss:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pango:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pcre:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pixman:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${sqlite3:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${xdamage:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${xfixes:location}/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${zlib:location}/lib"
exec %(location)s/chrome --disable-setuid-sandbox --disable-gpu $*""")
wrapper.flush()
wrapper.close()
os.system('"${findutils:location}/bin/find" "%(location)s" -type d -exec "${coreutils:location}/bin/chmod" a+rx {} \;') os.system('"${findutils:location}/bin/find" "%(location)s" -type d -exec "${coreutils:location}/bin/chmod" a+rx {} \;')
os.system('"${findutils:location}/bin/find" "%(location)s" -type f -executable -exec "${coreutils:location}/bin/chmod" a+rx {} \;') os.system('"${findutils:location}/bin/find" "%(location)s" -type f -executable -exec "${coreutils:location}/bin/chmod" a+rx {} \;')
os.system('"${findutils:location}/bin/find" "%(location)s" -type f -exec "${coreutils:location}/bin/chmod" a+r {} \;') os.system('"${findutils:location}/bin/find" "%(location)s" -type f -exec "${coreutils:location}/bin/chmod" a+r {} \;')
os.chmod(wrapper_location, 0755)
...@@ -31,7 +31,6 @@ part = ${firefox:location} ...@@ -31,7 +31,6 @@ part = ${firefox:location}
recipe = slapos.recipe.build recipe = slapos.recipe.build
location = ${buildout:bin-directory}/${:wrapper-name} location = ${buildout:bin-directory}/${:wrapper-name}
part = ${firefox:location}
script = script =
firefox = self.options['part'] firefox = self.options['part']
part = self.buildout[os.path.basename(firefox)] part = self.buildout[os.path.basename(firefox)]
...@@ -48,6 +47,11 @@ script = ...@@ -48,6 +47,11 @@ script =
)) ))
os.fchmod(f.fileno(), 0o755) os.fchmod(f.fileno(), 0o755)
[firefox-wrapper-60]
<= firefox-wrapper
wrapper-name = firefox-60
part = ${firefox-60:location}
[firefox-wrapper-52] [firefox-wrapper-52]
<= firefox-wrapper <= firefox-wrapper
wrapper-name = firefox-52 wrapper-name = firefox-52
...@@ -67,6 +71,12 @@ part = ${firefox-51:location} ...@@ -67,6 +71,12 @@ part = ${firefox-51:location}
# would not be created. # would not be created.
<= firefox-52 <= firefox-52
[firefox-60]
<= firefox-download
version = 60.0.2esr
i686-md5sum = ce7c80716036dfb5c2fb1ca2538556ff
x86_64-md5sum = 6fe25d9a3fcc82670320242c9047d1da
[firefox-52] [firefox-52]
<= firefox-download <= firefox-download
version = 52.9.0esr version = 52.9.0esr
...@@ -142,15 +152,38 @@ script = ...@@ -142,15 +152,38 @@ script =
[geckodriver] [geckodriver]
# Current geckodriver installed as buildout:bin-directory/geckodriver # Current geckodriver installed as ${buildout:bin-directory}/geckodriver
<= geckodriver-0.17.0 <= geckodriver-0.17.0
[geckodriver-0.22.0]
<= geckodriver-base
version = 0.22.0
i686-md5sum = 6de7544753fda56fbaa8382dcac99aaa
x86_64-md5sum = 81746200ce5841e00cabf3b8ea7db542
[geckodriver-0.21.0]
<= geckodriver-base
version = 0.21.0
i686-md5sum = 9fc1657dd1b94272d0cdb3b29ca80f79
x86_64-md5sum = 6bc36d4fd4975e296cdb3fa3c5e26a41
[geckodriver-0.19.0]
<= geckodriver-base
version = 0.19.0
i686-md5sum = 07cd383c8aef8ea5ef194a506141afd6
x86_64-md5sum = ca6935a72fd0527d15a78a17a35e56e8
[geckodriver-0.17.0] [geckodriver-0.17.0]
<= geckodriver-base <= geckodriver-base
version = 0.17.0 version = 0.17.0
i686-md5sum = 79b1a158f96d29942a111c0905f1c807 i686-md5sum = 79b1a158f96d29942a111c0905f1c807
x86_64-md5sum = be18faeea6e7db9db6990d8667e2298f x86_64-md5sum = be18faeea6e7db9db6990d8667e2298f
[geckodriver-0.16.1]
<= geckodriver-base
version = 0.16.1
i686-md5sum = not not on github
x86_64-md5sum = 57dfd55d4759d9878eb75b4c0123d00c
[geckodriver-0.14.0] [geckodriver-0.14.0]
<= geckodriver-base <= geckodriver-base
......
[buildout] [buildout]
extends = extends =
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
../p7zip/buildout.cfg
parts = parts =
liberation-fonts liberation-fonts
......
# GNU C Compiler # GNU C Compiler
# Mostly required to support languages different than C or C++ # Required to use a "known good version" of the compiler or to support languages different than C or C++
[buildout] [buildout]
extends = extends =
../gettext/buildout.cfg ../gettext/buildout.cfg
...@@ -50,3 +50,23 @@ configure-options = ...@@ -50,3 +50,23 @@ configure-options =
environment = environment =
LDFLAGS=-Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${mpc:location}/lib -Wl,-rpath=${mpfr:location}/lib LDFLAGS=-Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${mpc:location}/lib -Wl,-rpath=${mpfr:location}/lib
PATH=${perl:location}/bin:${tar:location}/bin:%(PATH)s PATH=${perl:location}/bin:${tar:location}/bin:%(PATH)s
[gcc-8.2]
recipe = slapos.recipe.cmmi
shared = true
url = https://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz
md5sum = ee04f0c22a941f5f17d93809387f2729
configure-options =
--disable-bootstrap
--disable-multilib
--with-gmp=${gmp:location}
--with-mpfr=${mpfr:location}
--with-mpc=${mpc:location}
--enable-languages="c,c++,fortran"
--with-isl=${isl:location}
--with-ld=${binutils:location}/bin/ld
--with-as=${binutils:location}/bin/as
environment =
LDFLAGS=-Wl,-rpath=${gmp:location}/lib -Wl,-rpath=${isl:location}/lib -Wl,-rpath=${mpc:location}/lib -Wl,-rpath=${mpfr:location}/lib
PATH=${binutils:location}/bin:${gettext:location}/bin:${perl:location}/bin:${tar:location}/bin:%(PATH)s
...@@ -17,5 +17,5 @@ rpath = ${:library-dirs} ...@@ -17,5 +17,5 @@ rpath = ${:library-dirs}
[geolite2-country] [geolite2-country]
recipe = slapos.recipe.build:download-unpacked recipe = slapos.recipe.build:download-unpacked
url = http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz#${:md5sum} url = http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz#${:md5sum}
md5sum = 4d4bf41db15f99b227a1009043963102 md5sum = 3ae76aa88be4401923acc3acf34e0faf
strip-top-level-dir = true strip-top-level-dir = true
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
[buildout] [buildout]
extends = extends =
../findutils/buildout.cfg ../findutils/buildout.cfg
../gcc/buildout.cfg
../git/buildout.cfg ../git/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
...@@ -18,6 +19,7 @@ make-targets= cd src && ./all.bash && cp -alf .. ${:location} ...@@ -18,6 +19,7 @@ make-targets= cd src && ./all.bash && cp -alf .. ${:location}
# some testdata files have an issue with slapos.extension.strip. # some testdata files have an issue with slapos.extension.strip.
post-install = ${findutils:location}/bin/find ${:location}/src -type d -name testdata -exec rm -rf {} \; || true post-install = ${findutils:location}/bin/find ${:location}/src -type d -name testdata -exec rm -rf {} \; || true
environment = environment =
PATH=${gcc-8.2:location}/bin:%(PATH)s
GOROOT_FINAL=${:location} GOROOT_FINAL=${:location}
${:environment-extra} ${:environment-extra}
...@@ -61,8 +63,8 @@ environment-extra = ...@@ -61,8 +63,8 @@ environment-extra =
# #
# [gowork] # [gowork]
# install = # install =
# lab.nexedi.com/kirr/neo/go/... \ # lab.nexedi.com/kirr/neo/go/...
# github.com/pkg/profile \ # github.com/pkg/profile
# golang.org/x/perf/cmd/benchstat # golang.org/x/perf/cmd/benchstat
# #
# For Cgo support pkg-config is made pre-available by gowork, and users # For Cgo support pkg-config is made pre-available by gowork, and users
...@@ -120,7 +122,7 @@ stop-on-error = true ...@@ -120,7 +122,7 @@ stop-on-error = true
# clients should put package list to install to gowork:install ("..." requests installing everything) # clients should put package list to install to gowork:install ("..." requests installing everything)
[gowork.goinstall] [gowork.goinstall]
recipe = plone.recipe.command recipe = plone.recipe.command
command = bash -c ". ${gowork:env.sh} && go install ${gowork:buildflags} -v ${gowork:install}" command = bash -c ". ${gowork:env.sh} && go install ${gowork:buildflags} -v $(echo -n '${gowork:install}' |tr '\n' ' ')"
update-command = ${:command} update-command = ${:command}
stop-on-error = true stop-on-error = true
......
...@@ -16,6 +16,7 @@ extends = ...@@ -16,6 +16,7 @@ extends =
../perl/buildout.cfg ../perl/buildout.cfg
../pkgconfig/buildout.cfg ../pkgconfig/buildout.cfg
../xorg/buildout.cfg ../xorg/buildout.cfg
../icu/buildout.cfg
../xz-utils/buildout.cfg ../xz-utils/buildout.cfg
../zlib/buildout.cfg ../zlib/buildout.cfg
...@@ -49,13 +50,13 @@ recipe = slapos.recipe.cmmi ...@@ -49,13 +50,13 @@ recipe = slapos.recipe.cmmi
shared = true shared = true
url = http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.35.tar.bz2 url = http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.35.tar.bz2
md5sum = 531ee8650626ecddcd90b2a4637e31d4 md5sum = 531ee8650626ecddcd90b2a4637e31d4
pkg_config_depends = ${cairo:location}/lib/pkgconfig:${cairo:pkg_config_depends} pkg_config_depends = ${cairo:location}/lib/pkgconfig:${cairo:pkg_config_depends}:${icu4c:location}/lib/pkgconfig
configure-options = configure-options =
--disable-static --disable-static
--disable-gtk-doc-html --disable-gtk-doc-html
--with-cairo --with-cairo
--with-freetype --with-freetype
--without-icu --with-icu
environment = environment =
PATH=${glib:location}/bin:${freetype:location}/bin:${pkgconfig:location}/bin:%(PATH)s PATH=${glib:location}/bin:${freetype:location}/bin:${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
...@@ -126,5 +127,5 @@ environment = ...@@ -126,5 +127,5 @@ environment =
PATH=${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
# not taken from pkg-config result... # not taken from pkg-config result...
CPPFLAGS=-I${libX11:location}/include/ -I${xproto:location}/include -I${kbproto:location}/include -I${libXrender:location}/include -I${render:location}/include -I${libXext:location}/include CPPFLAGS=-I${libX11:location}/include/ -I${xproto:location}/include -I${kbproto:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${libXext:location}/include
LDFLAGS=-L${libX11:location}/lib -L${libXext:location}/lib -L${libXrender:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${libX11:location}/lib -L${libXext:location}/lib -L${libXrender:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
...@@ -35,19 +35,24 @@ environment = ...@@ -35,19 +35,24 @@ environment =
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/gtk+-3.22.3.tar.xz url = http://ftp.gnome.org/pub/gnome/core/3.22/3.22.2/sources/gtk+-3.22.3.tar.xz
md5sum = f0e6492896a2ca244501142319adaa95 md5sum = f0e6492896a2ca244501142319adaa95
pkg_config_depends = ${at-spi2-atk:location}/lib/pkgconfig:${at-spi2-core:location}/lib/pkgconfig:${dbus:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${libepoxy:location}/lib/pkgconfig:${pango:location}/lib/pkgconfig:${pango:pkg_config_depends}:${atk:location}/lib/pkgconfig:${gdk-pixbuf:location}/lib/pkgconfig:${libXi:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig pkg_config_depends = ${at-spi2-atk:location}/lib/pkgconfig:${at-spi2-core:location}/lib/pkgconfig:${dbus:location}/lib/pkgconfig:${glib:location}/lib/pkgconfig:${libepoxy:location}/lib/pkgconfig:${pango:location}/lib/pkgconfig:${pango:pkg_config_depends}:${atk:location}/lib/pkgconfig:${gdk-pixbuf:location}/lib/pkgconfig:${libXi:pkg_config_depends}:${libXi:location}/lib/pkgconfig:${pcre:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libX11:pkg_config_depends}:${libX11:location}/lib/pkgconfig:${xorgproto:location}/lib/pkgconfig:${libXext:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libXrender:location}/lib/pkgconfig:${renderproto:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${kbproto:location}/lib/pkgconfig:${xcbproto:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${libXinerama:location}/lib/pkgconfig:${libXrandr:pkg_config_depends}:${libXrandr:location}/lib/pkgconfig:${xfixes:location}/lib/pkgconfig:${libXcomposite:location}/lib/pkgconfig:${xdamage:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${fixesproto:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${kbproto:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${compositeproto:location}/lib/pkgconfig:${fixesproto:location}/lib/pkgconfig:${kbproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${xfixes:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${xorg-util-macros:location}/share/pkgconfig:${xproto:location}/lib/pkgconfig:${damageproto:location}/lib/pkgconfig:${xfixes:location}/lib/pkgconfig:${fixesproto:location}/lib/pkgconfig:${xextproto:location}/lib/pkgconfig:${libX11:location}/lib/pkgconfig:${xproto:location}/lib/pkgconfig:${kbproto:location}/lib/pkgconfig:${libxcb:location}/lib/pkgconfig:${xorg-libpthread-stubs:location}/lib/pkgconfig:${libXau:location}/lib/pkgconfig
configure-options = configure-options =
--disable-static --disable-static
--disable-glibtest --disable-glibtest
--disable-cups --disable-cups
--disable-papi --disable-papi
--enable-explicit-deps --enable-explicit-deps
--disable-xinerama
--disable-gtk-doc-html --disable-gtk-doc-html
--disable-man --disable-man
--enable-x11-backend
--enable-xrandr
--enable-xfixes
--enable-xcomposite
--enable-xdamage
environment = environment =
PATH=${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${gdk-pixbuf:location}/bin:${gettext:location}/bin:${glib:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
# not taken from pkg-config result... # not taken from pkg-config result...
CPPFLAGS=-I${cairo:location}/include -I${inputproto:location}/include -I${libX11:location}/include -I${libXi:location}/include -I${xproto:location}/include -I${kbproto:location}/include -I${libXrender:location}/include -I${render:location}/include -I${libXext:location}/include CPPFLAGS=-I${cairo:location}/include -I${inputproto:location}/include -I${libX11:location}/include -I${libXi:location}/include -I${xproto:location}/include -I${kbproto:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${libXext:location}/include -I${libX11:location}/include -I${libXinerama:location}/include -I${gdk-pixbuf:location}/include -I${libXrandr:location}/include -I${xfixes:location}/include -I${libXcomposite:location}/include -I${xdamage:location}/include -I${fixesproto:location}/include
LDFLAGS=-L${libX11:location}/lib -L${libXi:location}/lib -L${libXext:location}/lib -L${libXrender:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-L${libX11:location}/lib -L${libXi:location}/lib -L${libXext:location}/lib -L${libXrender:location}/lib -L${gettext:location}/lib -Wl,-rpath=${gettext:location}/lib -L${bzip2:location}/lib -Wl,-rpath=${bzip2:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXinerama:location}/lib -Wl,-rpath=${libXinerama:location}/lib -L${gdk-pixbuf:location}/lib -Wl,-rpath=${gdk-pixbuf:location}/lib -L${libXrandr:location}/lib -Wl,-rpath=${libXrandr:location}/lib -L${xfixes:location}/lib -Wl,-rpath=${xfixes:location}/lib -L${libXcomposite:location}/lib -Wl,-rpath=${libXcomposite:location}/lib -L${xdamage:location}/lib -Wl,-rpath=${xdamage:location}/lib
...@@ -26,7 +26,7 @@ configure-options = ...@@ -26,7 +26,7 @@ configure-options =
environment = environment =
PATH=${freetype:location}/bin:${gcc:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s PATH=${freetype:location}/bin:${gcc:location}/bin:${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends} PKG_CONFIG_PATH=${:pkg_config_depends}
CPPFLAGS=-I${libX11:location}/include -I${libXrender:location}/include -I${render:location}/include -I${xproto:location}/include CPPFLAGS=-I${libX11:location}/include -I${libXrender:location}/include -I${renderext:location}/include -I${xproto:location}/include
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib -L${libXrender:location}/lib -Wl,-rpath=${libXrender:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${libX11:location}/lib -Wl,-rpath=${libX11:location}/lib -L${libXext:location}/lib -Wl,-rpath=${libXext:location}/lib -L${libXrender:location}/lib -Wl,-rpath=${libXrender:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib
......
...@@ -29,3 +29,4 @@ environment = ...@@ -29,3 +29,4 @@ environment =
LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64 LD_LIBRARY_PATH=${gcc:location}/lib:${gcc:location}/lib64
LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${tokyocabinet:location}/lib -Wl,-rpath=${messagepack:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${openssl:location}/lib LDFLAGS=-Wl,-rpath=${gcc:location}/lib -Wl,-rpath=${gcc:location}/lib64 -L${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${tokyocabinet:location}/lib -Wl,-rpath=${messagepack:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${openssl:location}/lib
PATH=${gcc:location}/bin:${patch:location}/bin:%(PATH)s PATH=${gcc:location}/bin:${patch:location}/bin:%(PATH)s
# KumoFS is known not to build with gcc>6, so we use our own gcc which is 5.5
\ No newline at end of file
...@@ -15,12 +15,24 @@ parts = ...@@ -15,12 +15,24 @@ parts =
[nodejs] [nodejs]
<= nodejs-0.12 <= nodejs-0.12
[nodejs-8.9.4]
<= nodejs-base
recipe = slapos.recipe.cmmi
version = v8.9.4
md5sum = 4ddc1daff327d7e6f63da57fdfc24f55
[nodejs-8.6.0] [nodejs-8.6.0]
<= nodejs-base
version = v8.6.0
md5sum = 0c95e08220667d8a18b97ecec8218ac6
[nodejs-base]
# Server-side Javascript. # Server-side Javascript.
version =
md5sum =
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
version = v8.6.0
url = https://nodejs.org/dist/${:version}/node-${:version}.tar.gz url = https://nodejs.org/dist/${:version}/node-${:version}.tar.gz
md5sum = 0c95e08220667d8a18b97ecec8218ac6
configure-options = configure-options =
--shared-openssl --shared-openssl
--shared-openssl-includes=${openssl:location}/include --shared-openssl-includes=${openssl:location}/include
...@@ -166,4 +178,4 @@ origin = https://github.com/isaacs/npm.git ...@@ -166,4 +178,4 @@ origin = https://github.com/isaacs/npm.git
git-bin = ${git:location}/bin/git git-bin = ${git:location}/bin/git
node-bin = ${nodejs-0.4:location}/bin/node node-bin = ${nodejs-0.4:location}/bin/node
command = (GIT_SSL_NO_VERIFY=true ${:git-bin} clone --quiet ${:origin} ${:location} && cd ${:location} && ${:git-bin} reset --hard ${:commit} && ${:location}/configure --prefix=${:location} && GIT_SSL_NO_VERIFY=true ${:git-bin} submodule update --init --recursive && ${:node-bin} cli.js install npm@1.0.106 -g -f) || (rm -fr ${:location}; exit 1) command = (GIT_SSL_NO_VERIFY=true ${:git-bin} clone --quiet ${:origin} ${:location} && cd ${:location} && ${:git-bin} reset --hard ${:commit} && ${:location}/configure --prefix=${:location} && GIT_SSL_NO_VERIFY=true ${:git-bin} submodule update --init --recursive && ${:node-bin} cli.js install npm@1.0.106 -g -f) || (rm -fr ${:location}; exit 1)
update-command = update-command =
\ No newline at end of file
[buildout]
extends =
../libffi/buildout.cfg
../pkgconfig/buildout.cfg
parts =
python-pynacl
[python-pynacl]
recipe = zc.recipe.egg:custom
egg = pynacl
environment = python-pynacl-env
library-dirs =
${libffi:location}/lib/
rpath =
${libffi:location}/lib/
[python-pynacl-env]
PATH = ${pkgconfig:location}/bin:%(PATH)s
PKG_CONFIG_PATH = ${libffi:location}/lib/pkgconfig
...@@ -30,7 +30,7 @@ patch-options = -p1 ...@@ -30,7 +30,7 @@ patch-options = -p1
patches = patches =
${:_profile_base_location_}/default_encoding.patch#4ad9664e622d5556b4c32b1d9cb587ff ${:_profile_base_location_}/default_encoding.patch#4ad9664e622d5556b4c32b1d9cb587ff
url = url =
http://www.python.org/ftp/python/${:package_version}/Python-${:package_version}${:package_version_suffix}.tar.xz https://www.python.org/ftp/python/${:package_version}/Python-${:package_version}${:package_version_suffix}.tar.xz
configure-options = configure-options =
--enable-ipv6 --enable-ipv6
--without-ensurepip --without-ensurepip
...@@ -52,3 +52,9 @@ environment = ...@@ -52,3 +52,9 @@ environment =
<= python3-common <= python3-common
package_version = 3.5.3 package_version = 3.5.3
md5sum = 57d1f8bfbabf4f2500273fb0706e6f21 md5sum = 57d1f8bfbabf4f2500273fb0706e6f21
[python3.6.6]
<= python3-common
package_version = 3.6.6
md5sum = c3f30a0aff425dda77d19e02f420d6ba
executable = @@LOCATION@@/bin/python3.6
...@@ -25,7 +25,7 @@ find-links = http://pkgs.fedoraproject.org/repo/pkgs/rdiff-backup/rdiff-backup-1 ...@@ -25,7 +25,7 @@ find-links = http://pkgs.fedoraproject.org/repo/pkgs/rdiff-backup/rdiff-backup-1
[rdiff-backup-build-1.3.4] [rdiff-backup-build-1.3.4]
<= rdiff-backup-build <= rdiff-backup-build
# use our own version # use our own version
find-links = http://www.nexedi.org/static/packages/source/rdiff-backup-1.3.4nxd5.tar.gz find-links = http://www.nexedi.org/static/packages/source/rdiff-backup-1.3.4nxd6.tar.gz
patches = patches =
${:_profile_base_location_}/rdiff-backup-1.3.4-librsync-1.0.0.patch#31fafc8bc4a00f002f52008a9f3b671f ${:_profile_base_location_}/rdiff-backup-1.3.4-librsync-1.0.0.patch#31fafc8bc4a00f002f52008a9f3b671f
......
...@@ -20,8 +20,8 @@ md5sum = 3dde098fd0b3a08d3f2867e4a95591ba ...@@ -20,8 +20,8 @@ md5sum = 3dde098fd0b3a08d3f2867e4a95591ba
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
ignore-existing = true ignore-existing = true
strip-top-level-dir = true strip-top-level-dir = true
url = http://www-us.apache.org/dist/tomcat/tomcat-7/v7.0.84/bin/apache-tomcat-7.0.84.tar.gz url = http://www-us.apache.org/dist/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz
md5sum = 1c6f2c06a90bd7d8a19522749c219a2a md5sum = 8bfbb358b51f90374067879f8db1e91c
[tomcat7-output] [tomcat7-output]
# Shared binary location to ease migration # Shared binary location to ease migration
......
...@@ -19,6 +19,7 @@ configure-options = ...@@ -19,6 +19,7 @@ configure-options =
--disable-static --disable-static
--disable-gl --disable-gl
--disable-wic --disable-wic
--enable-everything
--with-jpegincludedir=${libjpeg:location}/include --with-jpegincludedir=${libjpeg:location}/include
--with-jpeglibdir=${libjpeg:location}/lib --with-jpeglibdir=${libjpeg:location}/lib
--with-tiffincludedir=${libtiff:location}/include --with-tiffincludedir=${libtiff:location}/include
......
This diff is collapsed.
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
[libxcb_tmp_env.patch] [libxcb_tmp_env.patch]
filename = libxcb_tmp_env.patch filename = libxcb_tmp_env.patch
md5sum = 03bc7279f2a37bac7bf426af213123b2 md5sum = 5a2875e62216d2f41a75e92d1bf0ae67
[xorg-server_tmp_env.patch] [xorg-server_tmp_env.patch]
filename = xorg-server_tmp_env.patch filename = xorg-server_tmp_env.patch
......
Store Xorg lock files and sockets in different directories From 8469ef2a978e19145a56adb54925cf5936ab2d49 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Mon, 17 Sep 2018 16:07:02 +0200
Subject: [PATCH] SlapOS: Store Xorg lock files and sockets in different
directories
see xorg-server_tmp_env.patch see xorg-server_tmp_env.patch
---
src/xcb_util.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
--- libxcb-1.7/src/xcb_util.c.back 2012-04-03 13:30:36.000000000 +0200 diff --git a/src/xcb_util.c b/src/xcb_util.c
+++ libxcb-1.7/src/xcb_util.c 2012-04-03 14:47:00.000000000 +0200 index a16270c..d05f8a1 100644
@@ -147,11 +147,31 @@ --- a/src/xcb_util.c
+++ b/src/xcb_util.c
@@ -223,15 +223,37 @@ static int _xcb_open_unix(char *protocol, const char *file);
static int _xcb_open_abstract(char *protocol, const char *file, size_t filelen); static int _xcb_open_abstract(char *protocol, const char *file, size_t filelen);
#endif #endif
...@@ -27,14 +36,23 @@ see xorg-server_tmp_env.patch ...@@ -27,14 +36,23 @@ see xorg-server_tmp_env.patch
+ } + }
+ return strncat(path_list[0], suffix, PATH_MAX); + return strncat(path_list[0], suffix, PATH_MAX);
+} +}
+
+ +
static int _xcb_open(const char *host, char *protocol, const int display) static int _xcb_open(const char *host, char *protocol, const int display)
{ {
int fd; int fd;
#ifdef __hpux
static const char unix_base[] = "/usr/spool/sockets/X11/";
+ #error "SlapOS: no patch for hpux"
#else
- static const char unix_base[] = "/tmp/.X11-unix/X"; - static const char unix_base[] = "/tmp/.X11-unix/X";
- const char *base = unix_base;
+ char *base; + char *base;
+ base = _xcb_getandappendcompatibleenv("XORG_LOCK_DIR", "/tmp", "/.X11-unix/X"); + base = _xcb_getandappendcompatibleenv("XORG_LOCK_DIR", "/tmp", "/.X11-unix/X");
#endif
- const char *base = unix_base;
size_t filelen; size_t filelen;
char *file = NULL; char *file = NULL;
int actual_filelen; int actual_filelen;
--
2.11.0
#!/usr/bin/env python #!/usr/bin/env python
r"""Command-line tool to format software release JSON for slapos. r"""Command-line tool to format software release JSON for slapos.
Inspired by json.tool from python Inspired by json.tool from python, but enforcing 2 spaces and non-sorted keys.
The files are modified in-place.
Usage:: Usage::
format-json infile outfile format-json file1.json [file2.json]
""" """
...@@ -16,19 +17,16 @@ import collections ...@@ -16,19 +17,16 @@ import collections
def main(): def main():
if len(sys.argv) != 3: for f in sys.argv[1:]:
raise SystemExit(sys.argv[0] + " infile outfile") with open(f, 'rb') as infile:
try:
with open(sys.argv[1], 'rb') as infile: obj = json.load(infile, object_pairs_hook=collections.OrderedDict)
try: except ValueError as e:
obj = json.load(infile, object_pairs_hook=collections.OrderedDict) raise SystemExit(e)
except ValueError, e:
raise SystemExit(e) with open(f, 'wb') as outfile:
json.dump(obj, outfile, sort_keys=False, indent=2, separators=(',', ': '))
with open(sys.argv[2], 'wb') as outfile: outfile.write('\n')
json.dump(obj, outfile, sort_keys=False, indent=2, separators=(',', ': '))
outfile.write('\n')
if __name__ == '__main__': if __name__ == '__main__':
main() main()
This diff is collapsed.
{
"dependencies": {
"husky": "^1.1.2",
"lint-staged": "^7.3.0"
},
"lint-staged": {
"*.json": [
"python2 ./format-json",
"git add"
],
"{components,software,stack}/**": [
"python -c 'import sys, os.path, subprocess; [subprocess.check_call((\"python2\", \"./update-hash\", buildout_hash)) for buildout_hash in { os.path.join(os.path.dirname(staged), \"buildout.hash.cfg\") for staged in sys.argv[1:]} if os.path.exists(buildout_hash)]'",
"python -c 'import sys, os.path, subprocess; [subprocess.check_call((\"git\", \"add\", buildout_hash)) for buildout_hash in { os.path.join(os.path.dirname(staged), \"buildout.hash.cfg\") for staged in sys.argv[1:]} if os.path.exists(buildout_hash)]'"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
}
}
...@@ -4,12 +4,12 @@ generic_cloudooo ...@@ -4,12 +4,12 @@ generic_cloudooo
The generic_cloudooo recipe helps you to deploy cloudooo services with their configuration files. The generic_cloudooo recipe helps you to deploy cloudooo services with their configuration files.
How to use? How to use generic_cloudooo?
----------- ----------------------------
Here is an example of a section to add in your software.cfg : Here is an example of a section to add in your software.cfg :
.. code-block:: .. code-block:: ini
[cloudooo-configuration] [cloudooo-configuration]
recipe = slapos.cookbook:generic_cloudooo recipe = slapos.cookbook:generic_cloudooo
...@@ -42,7 +42,7 @@ Where : ...@@ -42,7 +42,7 @@ Where :
order to make the global mimetype at the bottom of the list. order to make the global mimetype at the bottom of the list.
(i.e. `* * ooo` > `text/* * ooo`) (i.e. `* * ooo` > `text/* * ooo`)
.. code-block:: .. code-block:: ini
mimetype_entry_addition = mimetype_entry_addition =
<input_format> <output_format> <handler> <input_format> <output_format> <handler>
...@@ -57,7 +57,7 @@ Where : ...@@ -57,7 +57,7 @@ Where :
Default mimetype registry Default mimetype registry
------------------------- -------------------------
.. code-block:: .. code-block:: ini
application/vnd.oasis.opendocument* * ooo application/vnd.oasis.opendocument* * ooo
application/vnd.sun.xml* * ooo application/vnd.sun.xml* * ooo
......
...@@ -4,20 +4,20 @@ generic_varnish ...@@ -4,20 +4,20 @@ generic_varnish
This recipe creates a varnish instance dedicated for ERP5 with a web checker[1] This recipe creates a varnish instance dedicated for ERP5 with a web checker[1]
set up. set up.
How to Use How to Use generic_varnish ?
========== ============================
On slap console, you can instanciate varnish like this: On slap console, you can instanciate varnish like this::
instance = request( instance = request(
software_type='varnish', software_type='varnish',
partition_parameter_kw={ partition_parameter_kw={
'backend-url':'https://[your_backend_address]:your_backend_port', 'backend-url':'https://[your_backend_address]:your_backend_port',
'web-checker-frontend-url':'http://www.example.com', 'web-checker-frontend-url':'http://www.example.com',
'web-checker-mail-address':'web-checker-result@example.com', 'web-checker-mail-address':'web-checker-result@example.com',
'web-checker-smtp-host':'mail.example.com', 'web-checker-smtp-host':'mail.example.com',
} }
) )
backend-url is the backend url that varnish will cache. backend-url is the backend url that varnish will cache.
...@@ -33,11 +33,6 @@ result. ...@@ -33,11 +33,6 @@ result.
[Note] [Note]
When web-checker-* parameters are not given, web_checker will be disabled. When web-checker-* parameters are not given, web_checker will be disabled.
TODO
====
We need to merge this and apache_frontend recipe.
References References
========== ==========
......
kvm kvm
=== ===
Introduction kvm: Introduction
------------ -----------------
The erp5.recipe.kvm aims to integrate KVM setups and buildout. This recipe is The erp5.recipe.kvm aims to integrate KVM setups and buildout. This recipe is
able to download one remote image and setup a KVM environment to use it. able to download one remote image and setup a KVM environment to use it.
......
kvm_frontend kvm_frontend
============= =============
Introduction kvm_frontend: Introduction
------------ ---------------------------
The ``slapos.recipe.kvm_frontend`` aims to provide proxy server to KVM instances. The ``slapos.recipe.kvm_frontend`` aims to provide proxy server to KVM instances.
...@@ -13,44 +13,40 @@ It works following the master/slave instances system. A master instance is ...@@ -13,44 +13,40 @@ It works following the master/slave instances system. A master instance is
created, containing all what is needed to run the proxy. Slave instances created, containing all what is needed to run the proxy. Slave instances
are later created, adding one line in the master instance's proxy configuration are later created, adding one line in the master instance's proxy configuration
that specify the IP/port to proxy to the KVM. that specify the IP/port to proxy to the KVM.
The slave instance (kvm) is then accessible from The slave instance (kvm) is then accessible from
http://[masterinstanceIPorhostname]/[randomgeneratednumber] http://[masterinstanceIPorhostname]/[randomgeneratednumber]
Instance parameters Instance parameters
------------ -------------------
Incoming master instance parameters Incoming master instance parameters
+++++++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``port`` - Port of server, optional, defaults to 4443. * ``port`` - Port of server, optional, defaults to 4443.
``domain`` - domain name to use, optional, default to * ``domain`` - domain name to use, optional, default to ``host.vifib.net``.
"host.vifib.net". * ``redirect_plain_http`` - if value is one of ``['y', 'yes', '1', 'true']``,
``redirect_plain_http`` - if value is one of ['y', 'yes', '1', 'true'], instance will try to create a simple http server on port 80 redirecting to the proxy. Optional.
will try to create a simple http server on port 80
redirecting to the proxy. Optional.
Incoming slave instance parameters Incoming slave instance parameters
+++++++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``host`` - KVM instance IP or hostname. Mandatory. * ``host`` - KVM instance IP or hostname. Mandatory.
``port`` - KVM instance port, Mandatory. * ``port`` - KVM instance port, Mandatory.
``https`` - if value is one of ['n', 'no', '0', 'false'], will try to connect * ``https`` - if value is one of ``['n', 'no', '0', 'false']``, will try to connect to target in plain http. Optional.
to target in plain http. Optional.
Connection parameters Connection parameters
------------- ---------------------
Outgoing master connection parameters Outgoing master connection parameters
+++++++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``domain_ipv6_address`` - Proxy IP * ``domain_ipv6_address`` - Proxy IP
``site_url`` - Proxy URL * ``site_url`` - Proxy URL
Outgoing slave connection parameters are : Outgoing slave connection parameters
+++++++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``site_url`` - URL of instance * ``site_url`` - URL of instance
``domain_name`` - Domain name of proxy * ``domain_name`` - Domain name of proxy
``port`` - Port of proxy * ``port`` - Port of proxy
...@@ -6,12 +6,12 @@ able to setup mariadb, apache and apache-php for your php application, and is al ...@@ -6,12 +6,12 @@ able to setup mariadb, apache and apache-php for your php application, and is al
configuring your software during installation to ensure a full compatibility. configuring your software during installation to ensure a full compatibility.
How to use? How to use lamp ?
----------- -----------------
just add this part in your software.cfg to use the lamp.simple module just add this part in your software.cfg to use the lamp.simple module
.. code-block:: .. code-block:: ini
[instance-recipe] [instance-recipe]
egg = slapos.cookbook egg = slapos.cookbook
...@@ -19,7 +19,7 @@ just add this part in your software.cfg to use the lamp.simple module ...@@ -19,7 +19,7 @@ just add this part in your software.cfg to use the lamp.simple module
you also need to extend lamp.cfg you also need to extend lamp.cfg
.. code-block:: .. code-block:: ini
extends = extends =
https://lab.nexedi.com/nexedi/slapos/raw/slapos-0.50/stack/lamp.cfg https://lab.nexedi.com/nexedi/slapos/raw/slapos-0.50/stack/lamp.cfg
...@@ -35,13 +35,13 @@ in this case you need to write a python script and lamp recipe must run it when ...@@ -35,13 +35,13 @@ in this case you need to write a python script and lamp recipe must run it when
How to use? How to use lamp.runner ?
----------- ------------------------
this part of lamp recipe work with slapos.toolbox, Therefore you must add it to your recipe. this part of lamp recipe work with slapos.toolbox, Therefore you must add it to your recipe.
in software.cfg, replace instance-recipe-egg part by in software.cfg, replace instance-recipe-egg part by
.. code-block:: .. code-block:: ini
[instance-recipe-egg] [instance-recipe-egg]
recipe = zc.recipe.egg recipe = zc.recipe.egg
...@@ -52,7 +52,7 @@ in software.cfg, replace instance-recipe-egg part by ...@@ -52,7 +52,7 @@ in software.cfg, replace instance-recipe-egg part by
and add into your instance.cfg and add into your instance.cfg
.. code-block:: .. code-block:: ini
lampconfigure_directory = ${buildout:bin-directory}/lampconfigure lampconfigure_directory = ${buildout:bin-directory}/lampconfigure
...@@ -71,10 +71,10 @@ you can also use database to check condition. add :: ...@@ -71,10 +71,10 @@ you can also use database to check condition. add ::
table_name = name_of_table table_name = name_of_table
constraint = sql_where_condition constraint = sql_where_condition
name_of_table is the full or partial name(in some cases we can not know the prefix used to create tables) of table ``name_of_table`` is the full or partial name(in some cases we can not know the prefix used to create tables) of table
into mariadb databse for example table_name = admin. if you use into mariadb databse for example ``table_name = admin``. if you use
name_of_table = **, the action will begin when database is ready. ``name_of_table = **``, the action will begin when database is ready.
constraint is the sql_condition to use when search entry into name_of_table for example constraint = `admin_id`=1 constraint is the sql_condition to use when search entry into name_of_table for example constraint = ``admin_id=1``
you can't use file_token and table_name at the same time, otherwise file_token will be used in priority. Beware of conditions that will never be satisfied. you can't use file_token and table_name at the same time, otherwise file_token will be used in priority. Beware of conditions that will never be satisfied.
...@@ -115,7 +115,7 @@ mode = mode_to_apply (ex= 0644) ...@@ -115,7 +115,7 @@ mode = mode_to_apply (ex= 0644)
use script = ${configure-script:location}/${configure-script:filename} into instance.cfg, add part configure-script use script = ${configure-script:location}/${configure-script:filename} into instance.cfg, add part configure-script
into software.cfg into software.cfg
.. code-block:: .. code-block:: ini
parts = configure-script parts = configure-script
......
...@@ -179,26 +179,11 @@ class Recipe(GenericSlapRecipe, Notify, Callback): ...@@ -179,26 +179,11 @@ class Recipe(GenericSlapRecipe, Notify, Callback):
$RDIFF_BACKUP --remove-older-than %(remove_backup_older_than)s --force $BACKUP_DIR $RDIFF_BACKUP --remove-older-than %(remove_backup_older_than)s --force $BACKUP_DIR
fi fi
SUCCEEDED=true
if [ -e %(backup_signature)s ]; then
cd $BACKUP_DIR
find -type f ! -name backup.signature ! -wholename "./rdiff-backup-data/*" -print0 | xargs -0 sha256sum | LC_ALL=C sort -k 66 > ../proof.signature
cmp backup.signature ../proof.signature || SUCCEEDED=false
diff -ruw backup.signature ../proof.signature > ../backup.diff
# XXX If there is a difference on the backup, we should publish the
# failure and ask the equeue, re-run this script again,
# instead do a push it to the clone.
fi
$SUCCEEDED || find $BACKUP_DIR -name rdiff-backup.tmp.* -exec rm -rf {} \;
""") """)
template_dict = { template_dict = {
'rdiffbackup_binary': shlex.quote(self.options['rdiffbackup-binary']), 'rdiffbackup_binary': shlex.quote(self.options['rdiffbackup-binary']),
'rdiff_backup_data': shlex.quote(os.path.join(local_dir, 'rdiff-backup-data')), 'rdiff_backup_data': shlex.quote(os.path.join(local_dir, 'rdiff-backup-data')),
'backup_signature': shlex.quote(os.path.join(local_dir, 'backup.signature')),
'remote_schema': shlex.quote(remote_schema), 'remote_schema': shlex.quote(remote_schema),
'remote_dir': shlex.quote(remote_dir), 'remote_dir': shlex.quote(remote_dir),
'local_dir': shlex.quote(local_dir), 'local_dir': shlex.quote(local_dir),
......
...@@ -51,29 +51,5 @@ pycrypto = 2.6.1 ...@@ -51,29 +51,5 @@ pycrypto = 2.6.1
pycurl = 7.43.0 pycurl = 7.43.0
slapos.recipe.download = 1.0 slapos.recipe.download = 1.0
slapos.recipe.template = 4.3 slapos.recipe.template = 4.3
slapos.toolbox = 0.81
smmap = 0.9.0 smmap = 0.9.0
# Required by:
# slapos.toolbox==0.71
GitPython = 2.0.8
# Required by:
# slapos.toolbox==0.71
atomize = 0.2.0
# Required by:
# slapos.toolbox==0.71
feedparser = 5.2.1
# Required by:
# slapos.toolbox==0.71
lockfile = 0.12.2
# Required by:
# slapos.toolbox==0.71
paramiko = 2.0.1
# Required by:
# slapos.toolbox==0.71
rpdb = 0.1.5
...@@ -11,49 +11,9 @@ plone.recipe.command = 1.1 ...@@ -11,49 +11,9 @@ plone.recipe.command = 1.1
pycrypto = 2.6.1 pycrypto = 2.6.1
rdiff-backup = 1.0.5+SlapOSPatched001 rdiff-backup = 1.0.5+SlapOSPatched001
slapos.recipe.template = 4.3 slapos.recipe.template = 4.3
slapos.toolbox = 0.81
smmap = 0.9.0 smmap = 0.9.0
numpy = 1.11.2 numpy = 1.11.2
pyasn1 = 0.2.3 pyasn1 = 0.2.3
websockify = 0.8.0 websockify = 0.8.0
# Required by:
# slapos.toolbox==0.71
dnspython = 1.15.0
# Required by:
# slapos.toolbox==0.71
erp5.util = 0.4.51
# Required by:
# slapos.toolbox==0.71
passlib = 1.6.5
# Required by:
# slapos.toolbox==0.71
GitPython = 2.0.8
# Required by:
# slapos.toolbox==0.71
atomize = 0.2.0
# Required by:
# slapos.toolbox==0.71
feedparser = 5.2.1
# Required by:
# slapos.toolbox==0.71
lockfile = 0.12.2
# Required by:
# slapos.toolbox==0.71
paramiko = 2.0.1
# Required by:
# slapos.toolbox==0.71
pycurl = 7.43.0
# Required by:
# slapos.toolbox==0.71
rpdb = 0.1.5
...@@ -121,9 +121,9 @@ eggs = ...@@ -121,9 +121,9 @@ eggs =
${rdiff-backup-build-1.3.4:egg} ${rdiff-backup-build-1.3.4:egg}
[versions] [versions]
# 1.3.4nxd5 is invalid version string, thus pached version string is not '1.3.4nxd5+SlapOSPatched001' # 1.3.4nxdX is invalid version string, thus pached version string is not '1.3.4nxdX+SlapOSPatched001'
# but '1.3.4nxd5-SlapOSPatched001'. # but '1.3.4nxdX-SlapOSPatched001'.
rdiff-backup = 1.3.4nxd5-SlapOSPatched001 rdiff-backup = 1.3.4nxd6-SlapOSPatched001
gunicorn = 19.1.1 gunicorn = 19.1.1
plone.recipe.command = 1.1 plone.recipe.command = 1.1
slapos.recipe.template = 2.4.2 slapos.recipe.template = 2.4.2
......
Generally things to be done with ``caddy-frontend``: Generally things to be done with ``caddy-frontend``:
* return warning on not implemented keys (from ``apache-frontend`` perspective) in master and slave request
* tests: add assertion with results of promises in etc/promise for each partition * tests: add assertion with results of promises in etc/promise for each partition
* check the whole frontend slave snippet with ``caddy -validate`` during buildout run, and reject if does not pass validation * check the whole frontend slave snippet with ``caddy -validate`` during buildout run, and reject if does not pass validation
* ``apache-ca-certificate`` shall be merged with ``apache-certificate`` * ``apache-ca-certificate`` shall be merged with ``apache-certificate``
...@@ -11,7 +12,6 @@ Generally things to be done with ``caddy-frontend``: ...@@ -11,7 +12,6 @@ Generally things to be done with ``caddy-frontend``:
* ``type:eventsource``: * ``type:eventsource``:
* **Jérome Perrin**: *For event source, if I understand https://github.com/mholt/caddy/issues/1355 correctly, we could use caddy as a proxy in front of nginx-push-stream . If we have a "central shared" caddy instance, can it handle keeping connections opens for many clients ?* * **Jérome Perrin**: *For event source, if I understand https://github.com/mholt/caddy/issues/1355 correctly, we could use caddy as a proxy in front of nginx-push-stream . If we have a "central shared" caddy instance, can it handle keeping connections opens for many clients ?*
* ``ssl_ca_crt``
* ``ssl_proxy_ca_crt`` for ``ssl_proxy_verify``, this is related to bug `#1550 <https://github.com/mholt/caddy/issues/1550>`_, proposed solution `just adding your CA to the system's trust store` * ``ssl_proxy_ca_crt`` for ``ssl_proxy_verify``, this is related to bug `#1550 <https://github.com/mholt/caddy/issues/1550>`_, proposed solution `just adding your CA to the system's trust store`
* ``check-error-on-caddy-log`` like ``check-error-on-apache-log`` * ``check-error-on-caddy-log`` like ``check-error-on-apache-log``
* cover test suite like resilient tests for KVM and prove it works the same way as Caddy * cover test suite like resilient tests for KVM and prove it works the same way as Caddy
......
...@@ -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 = bce721468b4c16294404cac8b88356c0 md5sum = d43a1631bcd0f4307507268a06f0fac2
[template-common] [template-common]
filename = instance-common.cfg.in filename = instance-common.cfg.in
...@@ -22,15 +22,15 @@ md5sum = c801b7f9f11f0965677c22e6bbe9281b ...@@ -22,15 +22,15 @@ md5sum = c801b7f9f11f0965677c22e6bbe9281b
[template-apache-frontend] [template-apache-frontend]
filename = instance-apache-frontend.cfg.in filename = instance-apache-frontend.cfg.in
md5sum = 750e2b1c922bf14511a3bc8a42468b1b md5sum = ab1795f92e32655d05c662c965d2b1f5
[template-apache-replicate] [template-apache-replicate]
filename = instance-apache-replicate.cfg.in filename = instance-apache-replicate.cfg.in
md5sum = 1576859772052bcb85ff2b5a7b786410 md5sum = 44d50bf8391b5a73b2ab72923efe6437
[template-slave-list] [template-slave-list]
filename = templates/apache-custom-slave-list.cfg.in filename = templates/apache-custom-slave-list.cfg.in
md5sum = ed1c086f0548a908661b294e845dc008 md5sum = 69992ad1dffe1c23237f3ef97193c95c
[template-slave-configuration] [template-slave-configuration]
filename = templates/custom-virtualhost.conf.in filename = templates/custom-virtualhost.conf.in
...@@ -46,7 +46,7 @@ md5sum = 7c987ad75fcce6f5b925c7696ff41971 ...@@ -46,7 +46,7 @@ md5sum = 7c987ad75fcce6f5b925c7696ff41971
[template-custom-slave-list] [template-custom-slave-list]
filename = templates/apache-custom-slave-list.cfg.in filename = templates/apache-custom-slave-list.cfg.in
md5sum = ed1c086f0548a908661b294e845dc008 md5sum = 69992ad1dffe1c23237f3ef97193c95c
[caddy-backend-url-validator] [caddy-backend-url-validator]
filename = templates/caddy-backend-url-validator.in filename = templates/caddy-backend-url-validator.in
...@@ -62,7 +62,7 @@ md5sum = f20d6c3d2d94fb685f8d26dfca1e822b ...@@ -62,7 +62,7 @@ md5sum = f20d6c3d2d94fb685f8d26dfca1e822b
[template-default-slave-virtualhost] [template-default-slave-virtualhost]
filename = templates/default-virtualhost.conf.in filename = templates/default-virtualhost.conf.in
md5sum = 9e00b6d981b9f93a486ef06a47345ebd md5sum = 73bc8abae6aadc3ce55662c3d821b363
[template-cached-slave-virtualhost] [template-cached-slave-virtualhost]
filename = templates/cached-virtualhost.conf.in filename = templates/cached-virtualhost.conf.in
......
{%- if slap_software_type == software_type -%}
{%- set TRUE_VALUES = ['y', 'yes', '1', 'true'] -%} {%- set TRUE_VALUES = ['y', 'yes', '1', 'true'] -%}
[buildout] [buildout]
extends = extends =
...@@ -11,7 +12,9 @@ parts = ...@@ -11,7 +12,9 @@ parts =
cron cron
cron-entry-logrotate cron-entry-logrotate
ca-frontend ca-frontend
ca-frontend-service
certificate-authority certificate-authority
certificate-authority-service
logrotate-entry-caddy logrotate-entry-caddy
logrotate-entry-nginx logrotate-entry-nginx
caddy-frontend caddy-frontend
...@@ -240,6 +243,7 @@ wrapper-path = ${directory:service}/frontend_caddy ...@@ -240,6 +243,7 @@ wrapper-path = ${directory:service}/frontend_caddy
wait-for-files = wait-for-files =
${ca-frontend:cert-file} ${ca-frontend:cert-file}
${ca-frontend:key-file} ${ca-frontend:key-file}
hash-files = ${buildout:directory}/software_release/buildout.cfg
[not-found-html] [not-found-html]
recipe = slapos.cookbook:symbolic.link recipe = slapos.cookbook:symbolic.link
...@@ -281,12 +285,18 @@ recipe = slapos.cookbook:certificate_authority ...@@ -281,12 +285,18 @@ recipe = slapos.cookbook:certificate_authority
openssl-binary = {{ parameter_dict['openssl'] }}/bin/openssl openssl-binary = {{ parameter_dict['openssl'] }}/bin/openssl
ca-dir = ${directory:ca-dir} ca-dir = ${directory:ca-dir}
requests-directory = ${cadirectory:requests} requests-directory = ${cadirectory:requests}
wrapper = ${directory:service}/certificate_authority wrapper = ${directory:bin}/certificate_authority
ca-private = ${cadirectory:private} ca-private = ${cadirectory:private}
ca-certs = ${cadirectory:certs} ca-certs = ${cadirectory:certs}
ca-newcerts = ${cadirectory:newcerts} ca-newcerts = ${cadirectory:newcerts}
ca-crl = ${cadirectory:crl} ca-crl = ${cadirectory:crl}
[certificate-authority-service]
recipe = slapos.cookbook:wrapper
command-line = ${certificate-authority:wrapper}
wrapper-path = ${directory:service}/certificate_authority
hash-files = ${buildout:directory}/software_release/buildout.cfg
[cadirectory] [cadirectory]
recipe = slapos.cookbook:mkdirectory recipe = slapos.cookbook:mkdirectory
requests = ${directory:ca-dir}/requests/ requests = ${directory:ca-dir}/requests/
...@@ -301,12 +311,18 @@ recipe = slapos.cookbook:certificate_authority.request ...@@ -301,12 +311,18 @@ recipe = slapos.cookbook:certificate_authority.request
key-file = ${cadirectory:certs}/frontend.key key-file = ${cadirectory:certs}/frontend.key
cert-file = ${cadirectory:certs}/frontend.crt cert-file = ${cadirectory:certs}/frontend.crt
executable = ${directory:service}/frontend_caddy executable = ${directory:service}/frontend_caddy
wrapper = ${directory:service}/frontend_caddy wrapper = ${directory:bin}/frontend_caddy
key-content = ${configuration:apache-key} key-content = ${configuration:apache-key}
cert-content = ${configuration:apache-certificate} cert-content = ${configuration:apache-certificate}
# Put domain name # Put domain name
name = ${configuration:domain} name = ${configuration:domain}
[ca-frontend-service]
recipe = slapos.cookbook:wrapper
command-line = ${ca-frontend:wrapper}
wrapper-path = ${directory:service}/frontend_caddy
hash-files = ${buildout:directory}/software_release/buildout.cfg
[ca-custom-frontend] [ca-custom-frontend]
< = jinja2-template-base < = jinja2-template-base
template = {{ parameter_dict['template_empty'] }} template = {{ parameter_dict['template_empty'] }}
...@@ -411,6 +427,7 @@ recipe = slapos.cookbook:wrapper ...@@ -411,6 +427,7 @@ recipe = slapos.cookbook:wrapper
command-line = {{ parameter_dict['trafficserver'] }}/bin/traffic_cop command-line = {{ parameter_dict['trafficserver'] }}/bin/traffic_cop
wrapper-path = ${trafficserver-variable:wrapper-path} wrapper-path = ${trafficserver-variable:wrapper-path}
environment = TS_ROOT=${buildout:directory} environment = TS_ROOT=${buildout:directory}
hash-files = ${buildout:directory}/software_release/buildout.cfg
[trafficserver-reload] [trafficserver-reload]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
...@@ -644,6 +661,7 @@ wrapper-path = ${directory:bin}/nginx-wrapper ...@@ -644,6 +661,7 @@ wrapper-path = ${directory:bin}/nginx-wrapper
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = ${nginx-wrapper:wrapper-path} -pidfile ${nginx-configuration:pid-file} command-line = ${nginx-wrapper:wrapper-path} -pidfile ${nginx-configuration:pid-file}
wrapper-path = ${directory:service}/frontend_nginx wrapper-path = ${directory:service}/frontend_nginx
hash-files = ${buildout:directory}/software_release/buildout.cfg
[dynamic-nginx-frontend-template] [dynamic-nginx-frontend-template]
< = jinja2-template-base < = jinja2-template-base
...@@ -738,3 +756,4 @@ extra-context = ...@@ -738,3 +756,4 @@ extra-context =
{{ key.replace('configuration.', '') }} = {{ dumps(value) }} {{ key.replace('configuration.', '') }} = {{ dumps(value) }}
{%- endif -%} {%- endif -%}
{%- endfor -%} {%- endfor -%}
{%- endif -%} {# if slap_software_type == software_type #}
...@@ -64,13 +64,14 @@ context = ...@@ -64,13 +64,14 @@ context =
}) %} }) %}
{% endfor %} {% endfor %}
{% set authorized_slave_string = slapparameter_dict.pop('-frontend-authorized-slave-string', '') %} {% set authorized_slave_string_list = slapparameter_dict.pop('-frontend-authorized-slave-string', '').split() %}
{% set authorized_slave_list = [] %} {% set authorized_slave_list = [] %}
{% set rejected_slave_dict = {} %} {% set rejected_slave_dict = {} %}
{% set used_host_list = [] %} {% set used_host_list = [] %}
{% set unauthorised_message = 'slave not authorised' %} {% set unauthorized_message = 'slave not authorized' %}
{% for slave in slave_instance_list %} {% for slave in slave_instance_list %}
{% set slave_error_list = [] %} {% set slave_error_list = [] %}
{% set slave_server_alias_unclashed = [] %}
{# BBB: apache_custom_https AND apache_custom_http #} {# BBB: apache_custom_https AND apache_custom_http #}
{% set custom_domain = slave.get('custom_domain') %} {% set custom_domain = slave.get('custom_domain') %}
{% if custom_domain and custom_domain in used_host_list %} {% if custom_domain and custom_domain in used_host_list %}
...@@ -80,22 +81,31 @@ context = ...@@ -80,22 +81,31 @@ context =
{% endif %} {% endif %}
{% if slave.get('server-alias') %} {% if slave.get('server-alias') %}
{% for slave_alias in slave['server-alias'].split() %} {% for slave_alias in slave['server-alias'].split() %}
{% if not validators.domain(slave_alias) %} {% if slave_alias.startswith('*.') %}
{% set clean_slave_alias = slave_alias[2:] %}
{% else %}
{% set clean_slave_alias = slave_alias %}
{% endif %}
{% if not validators.domain(clean_slave_alias) %}
{% do slave_error_list.append('server-alias %r not valid' % (slave_alias,)) %} {% do slave_error_list.append('server-alias %r not valid' % (slave_alias,)) %}
{% else %} {% else %}
{% if slave_alias in used_host_list %} {% if slave_alias in slave_server_alias_unclashed or slave_alias == custom_domain %}
{# optionally do something about reporting back that server-alias has been unclashed #}
{% elif slave_alias in used_host_list %}
{% do slave_error_list.append('server-alias %r clashes' % (slave_alias,)) %} {% do slave_error_list.append('server-alias %r clashes' % (slave_alias,)) %}
{% else %} {% else %}
{% do slave_server_alias_unclashed.append(slave_alias) %}
{% do used_host_list.append(slave_alias) %} {% do used_host_list.append(slave_alias) %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% do slave.__setitem__('server-alias', ' '.join(slave_server_alias_unclashed)) %}
{% endif %} {% endif %}
{% for key in ['caddy_custom_http', 'caddy_custom_https', 'apache_custom_http', 'apache_custom_https'] %} {% for key in ['caddy_custom_http', 'caddy_custom_https', 'apache_custom_http', 'apache_custom_https'] %}
{% if slave.get(key) %} {% if slave.get(key) %}
{% if not slave.get('slave_reference') in authorized_slave_string %} {% if not slave.get('slave_reference') in authorized_slave_string_list %}
{% if not unauthorised_message in slave_error_list %} {% if not unauthorized_message in slave_error_list %}
{% do slave_error_list.append(unauthorised_message) %} {% do slave_error_list.append(unauthorized_message) %}
{% endif %} {% endif %}
{% elif subprocess_module.call([caddy_custom_http_validator, slave[key]]) == 1 %} {% elif subprocess_module.call([caddy_custom_http_validator, slave[key]]) == 1 %}
{% do slave_error_list.append('slave %s configuration invalid' % (key,)) %} {% do slave_error_list.append('slave %s configuration invalid' % (key,)) %}
...@@ -122,7 +132,12 @@ context = ...@@ -122,7 +132,12 @@ context =
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if slave.get('custom_domain') %} {% if slave.get('custom_domain') %}
{% if not validators.domain(slave['custom_domain']) %} {% if slave['custom_domain'].startswith('*.') %}
{% set clean_custom_domain = slave['custom_domain'][2:] %}
{% else %}
{% set clean_custom_domain = slave['custom_domain'] %}
{% endif %}
{% if not validators.domain(clean_custom_domain) %}
{% do slave_error_list.append('custom_domain %r invalid' % (slave['custom_domain'],)) %} {% do slave_error_list.append('custom_domain %r invalid' % (slave['custom_domain'],)) %}
{% endif %} {% endif %}
{% endif %} {% endif %}
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
"type": "integer" "type": "integer"
}, },
"apache-ca-certificate": { "apache-ca-certificate": {
"description": "[NOT IMPLEMENTED] SSL CA Certificate used by the server.", "description": "[NOT IMPLEMENTED] SSL CA Certificate used by the server. You can append it to 'apache-certificate'.",
"textarea": true, "textarea": true,
"title": "[NOT IMPLEMENTED] SSL CA Certificate", "title": "[NOT IMPLEMENTED] SSL CA Certificate",
"type": "string" "type": "string"
......
...@@ -141,9 +141,9 @@ ...@@ -141,9 +141,9 @@
}, },
"ssl_ca_crt": { "ssl_ca_crt": {
"default": "", "default": "",
"description": "[NOT Implemented] Content of the CA certificate file", "description": "Content of the CA certificate file",
"textarea": true, "textarea": true,
"title": "[NOT Implemented] SSL Certificate Authority's Certificate", "title": "SSL Certificate Authority's Certificate",
"type": "string" "type": "string"
}, },
"ssl_crt": { "ssl_crt": {
......
...@@ -41,6 +41,7 @@ filename = instance-caddy-frontend.cfg ...@@ -41,6 +41,7 @@ filename = instance-caddy-frontend.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
section parameter_dict dynamic-template-caddy-frontend-parameters section parameter_dict dynamic-template-caddy-frontend-parameters
raw software_type single-custom-personal
[dynamic-template-caddy-replicate] [dynamic-template-caddy-replicate]
< = jinja2-template-base < = jinja2-template-base
......
...@@ -12,49 +12,8 @@ plone.recipe.command = 1.1 ...@@ -12,49 +12,8 @@ plone.recipe.command = 1.1
pycrypto = 2.6.1 pycrypto = 2.6.1
rdiff-backup = 1.0.5+SlapOSPatched001 rdiff-backup = 1.0.5+SlapOSPatched001
slapos.recipe.template = 4.3 slapos.recipe.template = 4.3
slapos.toolbox = 0.81
smmap = 0.9.0 smmap = 0.9.0
numpy = 1.11.2 numpy = 1.11.2
pyasn1 = 0.2.3 pyasn1 = 0.2.3
websockify = 0.8.0 websockify = 0.8.0
# Required by:
# slapos.toolbox==0.71
dnspython = 1.15.0
# Required by:
# slapos.toolbox==0.71
erp5.util = 0.4.51
# Required by:
# slapos.toolbox==0.71
passlib = 1.6.5
# Required by:
# slapos.toolbox==0.71
GitPython = 2.0.8
# Required by:
# slapos.toolbox==0.71
atomize = 0.2.0
# Required by:
# slapos.toolbox==0.71
feedparser = 5.2.1
# Required by:
# slapos.toolbox==0.71
lockfile = 0.12.2
# Required by:
# slapos.toolbox==0.71
paramiko = 2.0.1
# Required by:
# slapos.toolbox==0.71
pycurl = 7.43.0
# Required by:
# slapos.toolbox==0.71
rpdb = 0.1.5
...@@ -62,6 +62,9 @@ crl = {{ custom_ssl_directory }}/crl/ ...@@ -62,6 +62,9 @@ crl = {{ custom_ssl_directory }}/crl/
{% set slave_log_folder = logrotate_dict.get('backup') + '/' + slave_reference + "-logs" %} {% set slave_log_folder = logrotate_dict.get('backup') + '/' + slave_reference + "-logs" %}
{# Pass HTTP2 switch #}
{% do slave_instance.__setitem__('enable_http2_by_default', enable_http2_by_default) %}
{# Set Up log files #} {# Set Up log files #}
{% do slave_parameter_dict.__setitem__('access_log', '/'.join([caddy_log_directory, '%s_access_log' % slave_reference])) %} {% do slave_parameter_dict.__setitem__('access_log', '/'.join([caddy_log_directory, '%s_access_log' % slave_reference])) %}
{% do slave_parameter_dict.__setitem__('error_log', '/'.join([caddy_log_directory, '%s_error_log' % slave_reference])) %} {% do slave_parameter_dict.__setitem__('error_log', '/'.join([caddy_log_directory, '%s_error_log' % slave_reference])) %}
...@@ -160,7 +163,6 @@ value = {{ dumps(slave_instance.get(cert_name)) }} ...@@ -160,7 +163,6 @@ value = {{ dumps(slave_instance.get(cert_name)) }}
{% do slave_instance.__setitem__('login_certificate', login_certificate) %} {% do slave_instance.__setitem__('login_certificate', login_certificate) %}
{% do slave_instance.__setitem__('login_key', login_key) %} {% do slave_instance.__setitem__('login_key', login_key) %}
{% do slave_instance.__setitem__('login_ca_crt', login_ca_crt) %} {% do slave_instance.__setitem__('login_ca_crt', login_ca_crt) %}
{% do slave_instance.__setitem__('enable_http2_by_default', enable_http2_by_default) %}
{% do slave_parameter_dict.__setitem__('ssl_crt', login_certificate) %} {% do slave_parameter_dict.__setitem__('ssl_crt', login_certificate) %}
{% do slave_parameter_dict.__setitem__('ssl_key', login_key) %} {% do slave_parameter_dict.__setitem__('ssl_key', login_key) %}
{% if 'ssl_key' in slave_instance and 'ssl_crt' in slave_instance %} {% if 'ssl_key' in slave_instance and 'ssl_crt' in slave_instance %}
...@@ -187,7 +189,7 @@ extra-context = ...@@ -187,7 +189,7 @@ extra-context =
< = jinja2-template-base < = jinja2-template-base
template = {{ empty_template }} template = {{ empty_template }}
rendered = {{ cert_file }} rendered = {{ cert_file }}
cert-content = {{ dumps(slave_instance.get('ssl_crt')) }} cert-content = {{ dumps(slave_instance.get('ssl_crt') + '\n' + slave_instance.get('ssl_ca_crt', '')) }}
extra-context = extra-context =
key content :cert-content key content :cert-content
{% endif %} {% endif %}
......
...@@ -12,12 +12,10 @@ ...@@ -12,12 +12,10 @@
{%- set disabled_cookie_list = slave_parameter.get('disabled-cookie-list', '').split() %} {%- set disabled_cookie_list = slave_parameter.get('disabled-cookie-list', '').split() %}
{%- set https_only = ('' ~ slave_parameter.get('https-only', '')).lower() in TRUE_VALUES %} {%- set https_only = ('' ~ slave_parameter.get('https-only', '')).lower() in TRUE_VALUES %}
{%- set slave_type = slave_parameter.get('type', '') %} {%- set slave_type = slave_parameter.get('type', '') %}
{%- set host_list = [] %} {%- set host_list = server_alias_list %}
{%- for host in [slave_parameter.get('custom_domain')] + server_alias_list %} {%- if slave_parameter.get('custom_domain') not in host_list %}
{%- if host not in host_list %} {%- do host_list.append(slave_parameter.get('custom_domain')) %}
{%- do host_list.append(host) %} {%- endif %}
{%- endif %}
{%- endfor %}
{%- set backend_url = slave_parameter.get('https-url', slave_parameter.get('url', '')) %} {%- set backend_url = slave_parameter.get('https-url', slave_parameter.get('url', '')) %}
{%- set http_host_list = [] %} {%- set http_host_list = [] %}
{%- set https_host_list = [] %} {%- set https_host_list = [] %}
...@@ -36,10 +34,6 @@ ...@@ -36,10 +34,6 @@
status 501 / status 501 /
{%- endif %} {#- if ssl_proxy_verify and 'ssl_proxy_ca_crt' in slave_parameter #} {%- endif %} {#- if ssl_proxy_verify and 'ssl_proxy_ca_crt' in slave_parameter #}
tls {{ slave_parameter.get('path_to_ssl_crt', slave_parameter.get('login_certificate')) }} {{ slave_parameter.get('path_to_ssl_key', slave_parameter.get('login_key')) }} { tls {{ slave_parameter.get('path_to_ssl_crt', slave_parameter.get('login_certificate')) }} {{ slave_parameter.get('path_to_ssl_key', slave_parameter.get('login_key')) }} {
{%- if slave_parameter.get('path_to_ssl_ca_crt') %}
# Configuration of accepted clients
clients {{ slave_parameter.get('path_to_ssl_ca_crt') }}
{%- endif %} {#- if slave_parameter.get('path_to_ssl_ca_crt') #}
{%- if enable_h2 %} {%- if enable_h2 %}
# Allow HTTP2 # Allow HTTP2
alpn h2 http/1.1 alpn h2 http/1.1
......
This diff is collapsed.
TestDefaultMonitorHttpdPort-0:bootstrap-monitor EXITED TestDefaultMonitorHttpdPort-0:bootstrap-monitor EXITED
TestDefaultMonitorHttpdPort-0:certificate_authority-on-watch RUNNING TestDefaultMonitorHttpdPort-0:certificate_authority-on-watch RUNNING
TestDefaultMonitorHttpdPort-0:crond RUNNING TestDefaultMonitorHttpdPort-0:crond-{hash} RUNNING
TestDefaultMonitorHttpdPort-0:monitor-httpd-{hash}-on-watch EXITED
TestDefaultMonitorHttpdPort-0:monitor-httpd-graceful EXITED TestDefaultMonitorHttpdPort-0:monitor-httpd-graceful EXITED
TestDefaultMonitorHttpdPort-0:monitor-httpd-on-watch EXITED
TestDefaultMonitorHttpdPort-1:6tunnel-26011-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-26011-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-26012-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-26012-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-4443-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-4443-on-watch STOPPED
...@@ -10,14 +10,15 @@ TestDefaultMonitorHttpdPort-1:6tunnel-8080-on-watch STOPPED ...@@ -10,14 +10,15 @@ TestDefaultMonitorHttpdPort-1:6tunnel-8080-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-8081-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-8081-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-9443-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-9443-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:bootstrap-monitor STOPPED TestDefaultMonitorHttpdPort-1:bootstrap-monitor STOPPED
TestDefaultMonitorHttpdPort-1:certificate_authority-on-watch STOPPED TestDefaultMonitorHttpdPort-1:certificate_authority-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:crond-{hash} STOPPED
TestDefaultMonitorHttpdPort-1:crond-on-watch STOPPED TestDefaultMonitorHttpdPort-1:crond-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:frontend-caddy-safe-graceful STOPPED TestDefaultMonitorHttpdPort-1:frontend-caddy-safe-graceful STOPPED
TestDefaultMonitorHttpdPort-1:frontend-nginx-safe-graceful STOPPED TestDefaultMonitorHttpdPort-1:frontend-nginx-safe-graceful STOPPED
TestDefaultMonitorHttpdPort-1:frontend_caddy-on-watch STOPPED TestDefaultMonitorHttpdPort-1:frontend_caddy-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:frontend_nginx-on-watch STOPPED TestDefaultMonitorHttpdPort-1:frontend_nginx-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:monitor-httpd-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:monitor-httpd-graceful STOPPED TestDefaultMonitorHttpdPort-1:monitor-httpd-graceful STOPPED
TestDefaultMonitorHttpdPort-1:monitor-httpd-on-watch STOPPED TestDefaultMonitorHttpdPort-1:trafficserver-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:trafficserver-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:trafficserver-reload STOPPED TestDefaultMonitorHttpdPort-1:trafficserver-reload STOPPED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestDuplicateSiteKeyProtection-0:bootstrap-monitor EXITED TestDuplicateSiteKeyProtection-0:bootstrap-monitor EXITED
TestDuplicateSiteKeyProtection-0:certificate_authority-on-watch RUNNING TestDuplicateSiteKeyProtection-0:certificate_authority-on-watch RUNNING
TestDuplicateSiteKeyProtection-0:crond RUNNING TestDuplicateSiteKeyProtection-0:crond-{hash} RUNNING
TestDuplicateSiteKeyProtection-0:monitor-httpd-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-0:monitor-httpd-graceful EXITED TestDuplicateSiteKeyProtection-0:monitor-httpd-graceful EXITED
TestDuplicateSiteKeyProtection-0:monitor-httpd-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-11080-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-11080-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-11443-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-11443-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-12080-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestDuplicateSiteKeyProtection-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestDuplicateSiteKeyProtection-1:6tunnel-12443-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-26011-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-26011-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-26012-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-26012-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:bootstrap-monitor EXITED TestDuplicateSiteKeyProtection-1:bootstrap-monitor EXITED
TestDuplicateSiteKeyProtection-1:certificate_authority-on-watch RUNNING TestDuplicateSiteKeyProtection-1:certificate_authority-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:crond-{hash} RUNNING
TestDuplicateSiteKeyProtection-1:crond-on-watch RUNNING TestDuplicateSiteKeyProtection-1:crond-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:frontend-caddy-safe-graceful EXITED TestDuplicateSiteKeyProtection-1:frontend-caddy-safe-graceful EXITED
TestDuplicateSiteKeyProtection-1:frontend-nginx-safe-graceful EXITED TestDuplicateSiteKeyProtection-1:frontend-nginx-safe-graceful EXITED
TestDuplicateSiteKeyProtection-1:frontend_caddy-on-watch RUNNING TestDuplicateSiteKeyProtection-1:frontend_caddy-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:frontend_nginx-on-watch RUNNING TestDuplicateSiteKeyProtection-1:frontend_nginx-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:monitor-httpd-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:monitor-httpd-graceful EXITED TestDuplicateSiteKeyProtection-1:monitor-httpd-graceful EXITED
TestDuplicateSiteKeyProtection-1:monitor-httpd-on-watch RUNNING TestDuplicateSiteKeyProtection-1:trafficserver-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:trafficserver-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:trafficserver-reload EXITED TestDuplicateSiteKeyProtection-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestEnableHttp2ByDefaultDefaultSlave-0:bootstrap-monitor EXITED TestEnableHttp2ByDefaultDefaultSlave-0:bootstrap-monitor EXITED
TestEnableHttp2ByDefaultDefaultSlave-0:certificate_authority-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-0:certificate_authority-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-0:crond RUNNING TestEnableHttp2ByDefaultDefaultSlave-0:crond-{hash} RUNNING
TestEnableHttp2ByDefaultDefaultSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-0:monitor-httpd-graceful EXITED TestEnableHttp2ByDefaultDefaultSlave-0:monitor-httpd-graceful EXITED
TestEnableHttp2ByDefaultDefaultSlave-0:monitor-httpd-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-11080-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-11080-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-11443-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-11443-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-12080-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-12443-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-26011-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-26011-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-26012-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-26012-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:bootstrap-monitor EXITED TestEnableHttp2ByDefaultDefaultSlave-1:bootstrap-monitor EXITED
TestEnableHttp2ByDefaultDefaultSlave-1:certificate_authority-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:crond-{hash} RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:crond-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:crond-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:frontend-caddy-safe-graceful EXITED TestEnableHttp2ByDefaultDefaultSlave-1:frontend-caddy-safe-graceful EXITED
TestEnableHttp2ByDefaultDefaultSlave-1:frontend-nginx-safe-graceful EXITED TestEnableHttp2ByDefaultDefaultSlave-1:frontend-nginx-safe-graceful EXITED
TestEnableHttp2ByDefaultDefaultSlave-1:frontend_caddy-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:frontend_caddy-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:frontend_nginx-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:frontend_nginx-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:monitor-httpd-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:monitor-httpd-graceful EXITED TestEnableHttp2ByDefaultDefaultSlave-1:monitor-httpd-graceful EXITED
TestEnableHttp2ByDefaultDefaultSlave-1:monitor-httpd-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:trafficserver-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:trafficserver-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:trafficserver-reload EXITED TestEnableHttp2ByDefaultDefaultSlave-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestEnableHttp2ByDefaultFalseSlave-0:bootstrap-monitor EXITED TestEnableHttp2ByDefaultFalseSlave-0:bootstrap-monitor EXITED
TestEnableHttp2ByDefaultFalseSlave-0:certificate_authority-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-0:certificate_authority-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-0:crond RUNNING TestEnableHttp2ByDefaultFalseSlave-0:crond-{hash} RUNNING
TestEnableHttp2ByDefaultFalseSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-0:monitor-httpd-graceful EXITED TestEnableHttp2ByDefaultFalseSlave-0:monitor-httpd-graceful EXITED
TestEnableHttp2ByDefaultFalseSlave-0:monitor-httpd-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-11080-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-11080-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-11443-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-11443-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-12080-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-12443-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-26011-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-26011-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-26012-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-26012-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:bootstrap-monitor EXITED TestEnableHttp2ByDefaultFalseSlave-1:bootstrap-monitor EXITED
TestEnableHttp2ByDefaultFalseSlave-1:certificate_authority-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:crond-{hash} RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:crond-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:crond-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:frontend-caddy-safe-graceful EXITED TestEnableHttp2ByDefaultFalseSlave-1:frontend-caddy-safe-graceful EXITED
TestEnableHttp2ByDefaultFalseSlave-1:frontend-nginx-safe-graceful EXITED TestEnableHttp2ByDefaultFalseSlave-1:frontend-nginx-safe-graceful EXITED
TestEnableHttp2ByDefaultFalseSlave-1:frontend_caddy-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:frontend_caddy-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:frontend_nginx-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:frontend_nginx-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:monitor-httpd-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:monitor-httpd-graceful EXITED TestEnableHttp2ByDefaultFalseSlave-1:monitor-httpd-graceful EXITED
TestEnableHttp2ByDefaultFalseSlave-1:monitor-httpd-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:trafficserver-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:trafficserver-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:trafficserver-reload EXITED TestEnableHttp2ByDefaultFalseSlave-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestMalformedBackenUrlSlave-0:bootstrap-monitor EXITED TestMalformedBackenUrlSlave-0:bootstrap-monitor EXITED
TestMalformedBackenUrlSlave-0:certificate_authority-on-watch RUNNING TestMalformedBackenUrlSlave-0:certificate_authority-on-watch RUNNING
TestMalformedBackenUrlSlave-0:crond RUNNING TestMalformedBackenUrlSlave-0:crond-{hash} RUNNING
TestMalformedBackenUrlSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-0:monitor-httpd-graceful EXITED TestMalformedBackenUrlSlave-0:monitor-httpd-graceful EXITED
TestMalformedBackenUrlSlave-0:monitor-httpd-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-11080-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-11080-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-11443-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-11443-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-12080-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestMalformedBackenUrlSlave-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestMalformedBackenUrlSlave-1:6tunnel-12443-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-26011-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-26011-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-26012-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-26012-on-watch RUNNING
TestMalformedBackenUrlSlave-1:bootstrap-monitor EXITED TestMalformedBackenUrlSlave-1:bootstrap-monitor EXITED
TestMalformedBackenUrlSlave-1:certificate_authority-on-watch RUNNING TestMalformedBackenUrlSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:crond-{hash} RUNNING
TestMalformedBackenUrlSlave-1:crond-on-watch RUNNING TestMalformedBackenUrlSlave-1:crond-on-watch RUNNING
TestMalformedBackenUrlSlave-1:frontend-caddy-safe-graceful EXITED TestMalformedBackenUrlSlave-1:frontend-caddy-safe-graceful EXITED
TestMalformedBackenUrlSlave-1:frontend-nginx-safe-graceful EXITED TestMalformedBackenUrlSlave-1:frontend-nginx-safe-graceful EXITED
TestMalformedBackenUrlSlave-1:frontend_caddy-on-watch RUNNING TestMalformedBackenUrlSlave-1:frontend_caddy-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:frontend_nginx-on-watch RUNNING TestMalformedBackenUrlSlave-1:frontend_nginx-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:monitor-httpd-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:monitor-httpd-graceful EXITED TestMalformedBackenUrlSlave-1:monitor-httpd-graceful EXITED
TestMalformedBackenUrlSlave-1:monitor-httpd-on-watch RUNNING TestMalformedBackenUrlSlave-1:trafficserver-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:trafficserver-on-watch RUNNING
TestMalformedBackenUrlSlave-1:trafficserver-reload EXITED TestMalformedBackenUrlSlave-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
TestMasterRequest-0:bootstrap-monitor EXITED TestMasterRequest-0:bootstrap-monitor EXITED
TestMasterRequest-0:certificate_authority-on-watch RUNNING TestMasterRequest-0:certificate_authority-on-watch RUNNING
TestMasterRequest-0:crond RUNNING TestMasterRequest-0:crond-{hash} RUNNING
TestMasterRequest-0:monitor-httpd-{hash}-on-watch RUNNING
TestMasterRequest-0:monitor-httpd-graceful EXITED TestMasterRequest-0:monitor-httpd-graceful EXITED
TestMasterRequest-0:monitor-httpd-on-watch RUNNING
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestMasterRequestDomain-0:bootstrap-monitor EXITED TestMasterRequestDomain-0:bootstrap-monitor EXITED
TestMasterRequestDomain-0:certificate_authority-on-watch RUNNING TestMasterRequestDomain-0:certificate_authority-on-watch RUNNING
TestMasterRequestDomain-0:crond RUNNING TestMasterRequestDomain-0:crond-{hash} RUNNING
TestMasterRequestDomain-0:monitor-httpd-{hash}-on-watch RUNNING
TestMasterRequestDomain-0:monitor-httpd-graceful EXITED TestMasterRequestDomain-0:monitor-httpd-graceful EXITED
TestMasterRequestDomain-0:monitor-httpd-on-watch RUNNING
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestQuicEnabled-0:bootstrap-monitor EXITED TestQuicEnabled-0:bootstrap-monitor EXITED
TestQuicEnabled-0:certificate_authority-on-watch RUNNING TestQuicEnabled-0:certificate_authority-on-watch RUNNING
TestQuicEnabled-0:crond RUNNING TestQuicEnabled-0:crond-{hash} RUNNING
TestQuicEnabled-0:monitor-httpd-{hash}-on-watch RUNNING
TestQuicEnabled-0:monitor-httpd-graceful EXITED TestQuicEnabled-0:monitor-httpd-graceful EXITED
TestQuicEnabled-0:monitor-httpd-on-watch RUNNING
TestQuicEnabled-1:6tunnel-11080-on-watch RUNNING TestQuicEnabled-1:6tunnel-11080-on-watch RUNNING
TestQuicEnabled-1:6tunnel-11443-on-watch RUNNING TestQuicEnabled-1:6tunnel-11443-on-watch RUNNING
TestQuicEnabled-1:6tunnel-12080-on-watch RUNNING TestQuicEnabled-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestQuicEnabled-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestQuicEnabled-1:6tunnel-12443-on-watch RUNNING
TestQuicEnabled-1:6tunnel-26011-on-watch RUNNING TestQuicEnabled-1:6tunnel-26011-on-watch RUNNING
TestQuicEnabled-1:6tunnel-26012-on-watch RUNNING TestQuicEnabled-1:6tunnel-26012-on-watch RUNNING
TestQuicEnabled-1:bootstrap-monitor EXITED TestQuicEnabled-1:bootstrap-monitor EXITED
TestQuicEnabled-1:certificate_authority-on-watch RUNNING TestQuicEnabled-1:certificate_authority-{hash}-on-watch RUNNING
TestQuicEnabled-1:crond-{hash} RUNNING
TestQuicEnabled-1:crond-on-watch RUNNING TestQuicEnabled-1:crond-on-watch RUNNING
TestQuicEnabled-1:frontend-caddy-safe-graceful EXITED TestQuicEnabled-1:frontend-caddy-safe-graceful EXITED
TestQuicEnabled-1:frontend-nginx-safe-graceful EXITED TestQuicEnabled-1:frontend-nginx-safe-graceful EXITED
TestQuicEnabled-1:frontend_caddy-on-watch RUNNING TestQuicEnabled-1:frontend_caddy-{hash}-on-watch RUNNING
TestQuicEnabled-1:frontend_nginx-on-watch RUNNING TestQuicEnabled-1:frontend_nginx-{hash}-on-watch RUNNING
TestQuicEnabled-1:monitor-httpd-{hash}-on-watch RUNNING
TestQuicEnabled-1:monitor-httpd-graceful EXITED TestQuicEnabled-1:monitor-httpd-graceful EXITED
TestQuicEnabled-1:monitor-httpd-on-watch RUNNING TestQuicEnabled-1:trafficserver-{hash}-on-watch RUNNING
TestQuicEnabled-1:trafficserver-on-watch RUNNING
TestQuicEnabled-1:trafficserver-reload EXITED TestQuicEnabled-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestRe6stVerificationUrlDefaultSlave-0:bootstrap-monitor EXITED TestRe6stVerificationUrlDefaultSlave-0:bootstrap-monitor EXITED
TestRe6stVerificationUrlDefaultSlave-0:certificate_authority-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-0:certificate_authority-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-0:crond RUNNING TestRe6stVerificationUrlDefaultSlave-0:crond-{hash} RUNNING
TestRe6stVerificationUrlDefaultSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-0:monitor-httpd-graceful EXITED TestRe6stVerificationUrlDefaultSlave-0:monitor-httpd-graceful EXITED
TestRe6stVerificationUrlDefaultSlave-0:monitor-httpd-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-11080-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-11080-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-11443-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-11443-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-12080-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestRe6stVerificationUrlDefaultSlave-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestRe6stVerificationUrlDefaultSlave-1:6tunnel-12443-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-26011-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-26011-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-26012-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-26012-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:bootstrap-monitor EXITED TestRe6stVerificationUrlDefaultSlave-1:bootstrap-monitor EXITED
TestRe6stVerificationUrlDefaultSlave-1:certificate_authority-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:crond-{hash} RUNNING
TestRe6stVerificationUrlDefaultSlave-1:crond-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:crond-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:frontend-caddy-safe-graceful EXITED TestRe6stVerificationUrlDefaultSlave-1:frontend-caddy-safe-graceful EXITED
TestRe6stVerificationUrlDefaultSlave-1:frontend-nginx-safe-graceful EXITED TestRe6stVerificationUrlDefaultSlave-1:frontend-nginx-safe-graceful EXITED
TestRe6stVerificationUrlDefaultSlave-1:frontend_caddy-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:frontend_caddy-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:frontend_nginx-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:frontend_nginx-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:monitor-httpd-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:monitor-httpd-graceful EXITED TestRe6stVerificationUrlDefaultSlave-1:monitor-httpd-graceful EXITED
TestRe6stVerificationUrlDefaultSlave-1:monitor-httpd-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:trafficserver-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:trafficserver-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:trafficserver-reload EXITED TestRe6stVerificationUrlDefaultSlave-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestRe6stVerificationUrlSlave-0:bootstrap-monitor EXITED TestRe6stVerificationUrlSlave-0:bootstrap-monitor EXITED
TestRe6stVerificationUrlSlave-0:certificate_authority-on-watch RUNNING TestRe6stVerificationUrlSlave-0:certificate_authority-on-watch RUNNING
TestRe6stVerificationUrlSlave-0:crond RUNNING TestRe6stVerificationUrlSlave-0:crond-{hash} RUNNING
TestRe6stVerificationUrlSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-0:monitor-httpd-graceful EXITED TestRe6stVerificationUrlSlave-0:monitor-httpd-graceful EXITED
TestRe6stVerificationUrlSlave-0:monitor-httpd-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-11080-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-11080-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-11443-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-11443-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-12080-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestRe6stVerificationUrlSlave-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestRe6stVerificationUrlSlave-1:6tunnel-12443-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-26011-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-26011-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-26012-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-26012-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:bootstrap-monitor EXITED TestRe6stVerificationUrlSlave-1:bootstrap-monitor EXITED
TestRe6stVerificationUrlSlave-1:certificate_authority-on-watch RUNNING TestRe6stVerificationUrlSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:crond-{hash} RUNNING
TestRe6stVerificationUrlSlave-1:crond-on-watch RUNNING TestRe6stVerificationUrlSlave-1:crond-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:frontend-caddy-safe-graceful EXITED TestRe6stVerificationUrlSlave-1:frontend-caddy-safe-graceful EXITED
TestRe6stVerificationUrlSlave-1:frontend-nginx-safe-graceful EXITED TestRe6stVerificationUrlSlave-1:frontend-nginx-safe-graceful EXITED
TestRe6stVerificationUrlSlave-1:frontend_caddy-on-watch RUNNING TestRe6stVerificationUrlSlave-1:frontend_caddy-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:frontend_nginx-on-watch RUNNING TestRe6stVerificationUrlSlave-1:frontend_nginx-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:monitor-httpd-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:monitor-httpd-graceful EXITED TestRe6stVerificationUrlSlave-1:monitor-httpd-graceful EXITED
TestRe6stVerificationUrlSlave-1:monitor-httpd-on-watch RUNNING TestRe6stVerificationUrlSlave-1:trafficserver-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:trafficserver-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:trafficserver-reload EXITED TestRe6stVerificationUrlSlave-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestReplicateSlave-0:bootstrap-monitor EXITED TestReplicateSlave-0:bootstrap-monitor EXITED
TestReplicateSlave-0:certificate_authority-on-watch RUNNING TestReplicateSlave-0:certificate_authority-on-watch RUNNING
TestReplicateSlave-0:crond RUNNING TestReplicateSlave-0:crond-{hash} RUNNING
TestReplicateSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestReplicateSlave-0:monitor-httpd-graceful EXITED TestReplicateSlave-0:monitor-httpd-graceful EXITED
TestReplicateSlave-0:monitor-httpd-on-watch RUNNING
TestReplicateSlave-1:6tunnel-11080-on-watch RUNNING TestReplicateSlave-1:6tunnel-11080-on-watch RUNNING
TestReplicateSlave-1:6tunnel-11443-on-watch RUNNING TestReplicateSlave-1:6tunnel-11443-on-watch RUNNING
TestReplicateSlave-1:6tunnel-12080-on-watch RUNNING TestReplicateSlave-1:6tunnel-12080-on-watch RUNNING
...@@ -10,15 +10,16 @@ TestReplicateSlave-1:6tunnel-12443-on-watch RUNNING ...@@ -10,15 +10,16 @@ TestReplicateSlave-1:6tunnel-12443-on-watch RUNNING
TestReplicateSlave-1:6tunnel-26011-on-watch RUNNING TestReplicateSlave-1:6tunnel-26011-on-watch RUNNING
TestReplicateSlave-1:6tunnel-26012-on-watch RUNNING TestReplicateSlave-1:6tunnel-26012-on-watch RUNNING
TestReplicateSlave-1:bootstrap-monitor EXITED TestReplicateSlave-1:bootstrap-monitor EXITED
TestReplicateSlave-1:certificate_authority-on-watch RUNNING TestReplicateSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestReplicateSlave-1:crond-{hash} RUNNING
TestReplicateSlave-1:crond-on-watch RUNNING TestReplicateSlave-1:crond-on-watch RUNNING
TestReplicateSlave-1:frontend-caddy-safe-graceful EXITED TestReplicateSlave-1:frontend-caddy-safe-graceful EXITED
TestReplicateSlave-1:frontend-nginx-safe-graceful EXITED TestReplicateSlave-1:frontend-nginx-safe-graceful EXITED
TestReplicateSlave-1:frontend_caddy-on-watch RUNNING TestReplicateSlave-1:frontend_caddy-{hash}-on-watch RUNNING
TestReplicateSlave-1:frontend_nginx-on-watch RUNNING TestReplicateSlave-1:frontend_nginx-{hash}-on-watch RUNNING
TestReplicateSlave-1:monitor-httpd-{hash}-on-watch RUNNING
TestReplicateSlave-1:monitor-httpd-graceful EXITED TestReplicateSlave-1:monitor-httpd-graceful EXITED
TestReplicateSlave-1:monitor-httpd-on-watch RUNNING TestReplicateSlave-1:trafficserver-{hash}-on-watch RUNNING
TestReplicateSlave-1:trafficserver-on-watch RUNNING
TestReplicateSlave-1:trafficserver-reload EXITED TestReplicateSlave-1:trafficserver-reload EXITED
TestReplicateSlave-2:6tunnel-11080-on-watch STOPPED TestReplicateSlave-2:6tunnel-11080-on-watch STOPPED
TestReplicateSlave-2:6tunnel-11443-on-watch STOPPED TestReplicateSlave-2:6tunnel-11443-on-watch STOPPED
...@@ -27,14 +28,15 @@ TestReplicateSlave-2:6tunnel-12443-on-watch STOPPED ...@@ -27,14 +28,15 @@ TestReplicateSlave-2:6tunnel-12443-on-watch STOPPED
TestReplicateSlave-2:6tunnel-26011-on-watch STOPPED TestReplicateSlave-2:6tunnel-26011-on-watch STOPPED
TestReplicateSlave-2:6tunnel-26012-on-watch STOPPED TestReplicateSlave-2:6tunnel-26012-on-watch STOPPED
TestReplicateSlave-2:bootstrap-monitor STOPPED TestReplicateSlave-2:bootstrap-monitor STOPPED
TestReplicateSlave-2:certificate_authority-on-watch STOPPED TestReplicateSlave-2:certificate_authority-{hash}-on-watch STOPPED
TestReplicateSlave-2:crond-{hash} STOPPED
TestReplicateSlave-2:crond-on-watch STOPPED TestReplicateSlave-2:crond-on-watch STOPPED
TestReplicateSlave-2:frontend-caddy-safe-graceful STOPPED TestReplicateSlave-2:frontend-caddy-safe-graceful STOPPED
TestReplicateSlave-2:frontend-nginx-safe-graceful STOPPED TestReplicateSlave-2:frontend-nginx-safe-graceful STOPPED
TestReplicateSlave-2:frontend_caddy-on-watch STOPPED TestReplicateSlave-2:frontend_caddy-{hash}-on-watch STOPPED
TestReplicateSlave-2:frontend_nginx-on-watch STOPPED TestReplicateSlave-2:frontend_nginx-{hash}-on-watch STOPPED
TestReplicateSlave-2:monitor-httpd-{hash}-on-watch STOPPED
TestReplicateSlave-2:monitor-httpd-graceful STOPPED TestReplicateSlave-2:monitor-httpd-graceful STOPPED
TestReplicateSlave-2:monitor-httpd-on-watch STOPPED TestReplicateSlave-2:trafficserver-{hash}-on-watch STOPPED
TestReplicateSlave-2:trafficserver-on-watch STOPPED
TestReplicateSlave-2:trafficserver-reload STOPPED TestReplicateSlave-2:trafficserver-reload STOPPED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
...@@ -9,6 +9,8 @@ TestSlave-1/var/log/httpd/_custom_domain_access_log ...@@ -9,6 +9,8 @@ TestSlave-1/var/log/httpd/_custom_domain_access_log
TestSlave-1/var/log/httpd/_custom_domain_error_log TestSlave-1/var/log/httpd/_custom_domain_error_log
TestSlave-1/var/log/httpd/_custom_domain_ssl_crt_ssl_key_access_log TestSlave-1/var/log/httpd/_custom_domain_ssl_crt_ssl_key_access_log
TestSlave-1/var/log/httpd/_custom_domain_ssl_crt_ssl_key_error_log TestSlave-1/var/log/httpd/_custom_domain_ssl_crt_ssl_key_error_log
TestSlave-1/var/log/httpd/_custom_domain_wildcard_access_log
TestSlave-1/var/log/httpd/_custom_domain_wildcard_error_log
TestSlave-1/var/log/httpd/_disabled-cookie-list_access_log TestSlave-1/var/log/httpd/_disabled-cookie-list_access_log
TestSlave-1/var/log/httpd/_disabled-cookie-list_error_log TestSlave-1/var/log/httpd/_disabled-cookie-list_error_log
TestSlave-1/var/log/httpd/_empty_access_log TestSlave-1/var/log/httpd/_empty_access_log
...@@ -37,7 +39,13 @@ TestSlave-1/var/log/httpd/_prefer-gzip-encoding-to-backend_access_log ...@@ -37,7 +39,13 @@ TestSlave-1/var/log/httpd/_prefer-gzip-encoding-to-backend_access_log
TestSlave-1/var/log/httpd/_prefer-gzip-encoding-to-backend_error_log TestSlave-1/var/log/httpd/_prefer-gzip-encoding-to-backend_error_log
TestSlave-1/var/log/httpd/_re6st-optimal-test_access_log TestSlave-1/var/log/httpd/_re6st-optimal-test_access_log
TestSlave-1/var/log/httpd/_re6st-optimal-test_error_log TestSlave-1/var/log/httpd/_re6st-optimal-test_error_log
TestSlave-1/var/log/httpd/_server-alias-duplicated_access_log
TestSlave-1/var/log/httpd/_server-alias-duplicated_error_log
TestSlave-1/var/log/httpd/_server-alias-wildcard_access_log
TestSlave-1/var/log/httpd/_server-alias-wildcard_error_log
TestSlave-1/var/log/httpd/_server-alias_access_log TestSlave-1/var/log/httpd/_server-alias_access_log
TestSlave-1/var/log/httpd/_server-alias_custom_domain-duplicated_access_log
TestSlave-1/var/log/httpd/_server-alias_custom_domain-duplicated_error_log
TestSlave-1/var/log/httpd/_server-alias_error_log TestSlave-1/var/log/httpd/_server-alias_error_log
TestSlave-1/var/log/httpd/_ssl-proxy-verify-unverified_access_log TestSlave-1/var/log/httpd/_ssl-proxy-verify-unverified_access_log
TestSlave-1/var/log/httpd/_ssl-proxy-verify-unverified_error_log TestSlave-1/var/log/httpd/_ssl-proxy-verify-unverified_error_log
......
...@@ -6,6 +6,8 @@ TestSlave-1/etc/monitor-promise/check-_custom_domain-error-log-last-day ...@@ -6,6 +6,8 @@ TestSlave-1/etc/monitor-promise/check-_custom_domain-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_custom_domain-error-log-last-hour TestSlave-1/etc/monitor-promise/check-_custom_domain-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_custom_domain_ssl_crt_ssl_key-error-log-last-day TestSlave-1/etc/monitor-promise/check-_custom_domain_ssl_crt_ssl_key-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_custom_domain_ssl_crt_ssl_key-error-log-last-hour TestSlave-1/etc/monitor-promise/check-_custom_domain_ssl_crt_ssl_key-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_custom_domain_wildcard-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_custom_domain_wildcard-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_disabled-cookie-list-error-log-last-day TestSlave-1/etc/monitor-promise/check-_disabled-cookie-list-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_disabled-cookie-list-error-log-last-hour TestSlave-1/etc/monitor-promise/check-_disabled-cookie-list-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_empty-error-log-last-day TestSlave-1/etc/monitor-promise/check-_empty-error-log-last-day
...@@ -37,8 +39,14 @@ TestSlave-1/etc/monitor-promise/check-_prefer-gzip-encoding-to-backend-error-log ...@@ -37,8 +39,14 @@ TestSlave-1/etc/monitor-promise/check-_prefer-gzip-encoding-to-backend-error-log
TestSlave-1/etc/monitor-promise/check-_re6st-optimal-test-error-log-last-day TestSlave-1/etc/monitor-promise/check-_re6st-optimal-test-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_re6st-optimal-test-error-log-last-hour TestSlave-1/etc/monitor-promise/check-_re6st-optimal-test-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_re6st-optimal-test-re6st-optimal-test TestSlave-1/etc/monitor-promise/check-_re6st-optimal-test-re6st-optimal-test
TestSlave-1/etc/monitor-promise/check-_server-alias-duplicated-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_server-alias-duplicated-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_server-alias-error-log-last-day TestSlave-1/etc/monitor-promise/check-_server-alias-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_server-alias-error-log-last-hour TestSlave-1/etc/monitor-promise/check-_server-alias-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_server-alias-wildcard-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_server-alias-wildcard-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_server-alias_custom_domain-duplicated-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_server-alias_custom_domain-duplicated-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_ssl-proxy-verify-unverified-error-log-last-day TestSlave-1/etc/monitor-promise/check-_ssl-proxy-verify-unverified-error-log-last-day
TestSlave-1/etc/monitor-promise/check-_ssl-proxy-verify-unverified-error-log-last-hour TestSlave-1/etc/monitor-promise/check-_ssl-proxy-verify-unverified-error-log-last-hour
TestSlave-1/etc/monitor-promise/check-_ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-day TestSlave-1/etc/monitor-promise/check-_ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-day
......
TestSlave-0:bootstrap-monitor EXITED TestSlave-0:bootstrap-monitor EXITED
TestSlave-0:certificate_authority-on-watch RUNNING TestSlave-0:certificate_authority-on-watch RUNNING
TestSlave-0:crond RUNNING TestSlave-0:crond-{hash} RUNNING
TestSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestSlave-0:monitor-httpd-graceful EXITED TestSlave-0:monitor-httpd-graceful EXITED
TestSlave-0:monitor-httpd-on-watch RUNNING
TestSlave-1:6tunnel-11080-on-watch RUNNING TestSlave-1:6tunnel-11080-on-watch RUNNING
TestSlave-1:6tunnel-11443-on-watch RUNNING TestSlave-1:6tunnel-11443-on-watch RUNNING
TestSlave-1:6tunnel-12080-on-watch RUNNING TestSlave-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestSlave-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestSlave-1:6tunnel-12443-on-watch RUNNING
TestSlave-1:6tunnel-26011-on-watch RUNNING TestSlave-1:6tunnel-26011-on-watch RUNNING
TestSlave-1:6tunnel-26012-on-watch RUNNING TestSlave-1:6tunnel-26012-on-watch RUNNING
TestSlave-1:bootstrap-monitor EXITED TestSlave-1:bootstrap-monitor EXITED
TestSlave-1:certificate_authority-on-watch RUNNING TestSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestSlave-1:crond-{hash} RUNNING
TestSlave-1:crond-on-watch RUNNING TestSlave-1:crond-on-watch RUNNING
TestSlave-1:frontend-caddy-safe-graceful EXITED TestSlave-1:frontend-caddy-safe-graceful EXITED
TestSlave-1:frontend-nginx-safe-graceful EXITED TestSlave-1:frontend-nginx-safe-graceful EXITED
TestSlave-1:frontend_caddy-on-watch RUNNING TestSlave-1:frontend_caddy-{hash}-on-watch RUNNING
TestSlave-1:frontend_nginx-on-watch RUNNING TestSlave-1:frontend_nginx-{hash}-on-watch RUNNING
TestSlave-1:monitor-httpd-{hash}-on-watch RUNNING
TestSlave-1:monitor-httpd-graceful EXITED TestSlave-1:monitor-httpd-graceful EXITED
TestSlave-1:monitor-httpd-on-watch RUNNING TestSlave-1:trafficserver-{hash}-on-watch RUNNING
TestSlave-1:trafficserver-on-watch RUNNING
TestSlave-1:trafficserver-reload EXITED TestSlave-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestSlaveBadParameters-0:bootstrap-monitor EXITED TestSlaveBadParameters-0:bootstrap-monitor EXITED
TestSlaveBadParameters-0:certificate_authority-on-watch RUNNING TestSlaveBadParameters-0:certificate_authority-on-watch RUNNING
TestSlaveBadParameters-0:crond RUNNING TestSlaveBadParameters-0:crond-{hash} RUNNING
TestSlaveBadParameters-0:monitor-httpd-{hash}-on-watch RUNNING
TestSlaveBadParameters-0:monitor-httpd-graceful EXITED TestSlaveBadParameters-0:monitor-httpd-graceful EXITED
TestSlaveBadParameters-0:monitor-httpd-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-11080-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-11080-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-11443-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-11443-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-12080-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-12080-on-watch RUNNING
...@@ -10,14 +10,15 @@ TestSlaveBadParameters-1:6tunnel-12443-on-watch RUNNING ...@@ -10,14 +10,15 @@ TestSlaveBadParameters-1:6tunnel-12443-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-26011-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-26011-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-26012-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-26012-on-watch RUNNING
TestSlaveBadParameters-1:bootstrap-monitor EXITED TestSlaveBadParameters-1:bootstrap-monitor EXITED
TestSlaveBadParameters-1:certificate_authority-on-watch RUNNING TestSlaveBadParameters-1:certificate_authority-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:crond-{hash} RUNNING
TestSlaveBadParameters-1:crond-on-watch RUNNING TestSlaveBadParameters-1:crond-on-watch RUNNING
TestSlaveBadParameters-1:frontend-caddy-safe-graceful EXITED TestSlaveBadParameters-1:frontend-caddy-safe-graceful EXITED
TestSlaveBadParameters-1:frontend-nginx-safe-graceful EXITED TestSlaveBadParameters-1:frontend-nginx-safe-graceful EXITED
TestSlaveBadParameters-1:frontend_caddy-on-watch RUNNING TestSlaveBadParameters-1:frontend_caddy-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:frontend_nginx-on-watch RUNNING TestSlaveBadParameters-1:frontend_nginx-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:monitor-httpd-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:monitor-httpd-graceful EXITED TestSlaveBadParameters-1:monitor-httpd-graceful EXITED
TestSlaveBadParameters-1:monitor-httpd-on-watch RUNNING TestSlaveBadParameters-1:trafficserver-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:trafficserver-on-watch RUNNING
TestSlaveBadParameters-1:trafficserver-reload EXITED TestSlaveBadParameters-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
Tests for ERP5 software release
##############################################################################
#
# Copyright (c) 2018 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from setuptools import setup, find_packages
version = '0.0.1.dev0'
name = 'slapos.test.erp5'
long_description = open("README.md").read()
setup(name=name,
version=version,
description="Test for SlapOS' ERP5 software releae",
long_description=long_description,
long_description_content_type='text/markdown',
maintainer="Nexedi",
maintainer_email="info@nexedi.com",
url="https://lab.nexedi.com/nexedi/slapos",
packages=find_packages(),
install_requires=[
'slapos.core',
'supervisor',
'slapos.libnetworkcache',
'erp5.util',
'psutil',
'requests',
],
zip_safe=True,
test_suite='test',
)
##############################################################################
#
# Copyright (c) 2018 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import os
import unittest
import logging
if os.environ.get('DEBUG'):
raise ValueError("Don't set DEBUG - it breaks postfix compilation - set SLAPOS_TEST_DEBUG instead.")
debug_mode = os.environ.get('SLAPOS_TEST_DEBUG')
# for development: debugging logs and install Ctrl+C handler
if debug_mode:
logging.basicConfig(level=logging.DEBUG)
unittest.installHandler()
##############################################################################
#
# Copyright (c) 2018 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import os
import json
import glob
import urlparse
import logging
import time
import requests
from utils import SlapOSInstanceTestCase
class ERP5TestCase(SlapOSInstanceTestCase):
"""Test the remote driver on a minimal web server.
"""
logger = logging.getLogger(__name__)
@classmethod
def getSoftwareURLList(cls):
return (os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'software.cfg')), )
def getRootPartitionConnectionParameterDict(self):
"""Return the output paramters from the root partition"""
return json.loads(
self.computer_partition.getConnectionParameterDict()['_'])
class TestPublishedURLIsReachableMixin(object):
"""Mixin that checks that default page of ERP5 is reachable.
"""
def _checkERP5IsReachable(self, url):
# What happens is that instanciation just create the services, but does not
# wait for ERP5 to be initialized. When this test run ERP5 instance is
# instanciated, but zope is still busy creating the site and haproxy replies
# with 503 Service Unavailable.
# If we can move the "create site" in slapos node instance, then this retry loop
# would not be necessary.
for i in range(1, 20):
r = requests.get(url, verify=False) # XXX can we get CA from caucase already ?
if r.status_code == requests.codes.service_unavailable:
delay = i * 2
self.logger.warn("ERP5 was not available, sleeping for %ds and retrying", delay)
time.sleep(delay)
continue
if r.status_code != requests.codes.ok:
r.raise_for_status()
break
self.assertIn("ERP5", r.text)
def test_published_family_default_v6_is_reachable(self):
"""Tests the IPv6 URL published by the root partition is reachable.
"""
param_dict = self.getRootPartitionConnectionParameterDict()
self._checkERP5IsReachable(
urlparse.urljoin(param_dict['family-default-v6'], param_dict['site-id']))
def test_published_family_default_v4_is_reachable(self):
"""Tests the IPv4 URL published by the root partition is reachable.
"""
param_dict = self.getRootPartitionConnectionParameterDict()
self._checkERP5IsReachable(
urlparse.urljoin(param_dict['family-default'], param_dict['site-id']))
class TestDefaultParameters(ERP5TestCase, TestPublishedURLIsReachableMixin):
"""Test ERP5 can be instanciated with no parameters
"""
__partition_reference__ = 'defp'
class TestDisableTestRunner(ERP5TestCase, TestPublishedURLIsReachableMixin):
"""Test ERP5 can be instanciated without test runner.
"""
__partition_reference__ = 'distr'
@classmethod
def getInstanceParameterDict(cls):
return {'_': json.dumps({'test-runner': {'enabled': False}})}
def test_no_runUnitTestScript(self):
"""No runUnitTest script should be generated in any partition.
"""
# self.computer_partition_root_path is the path of root partition.
# we want to assert that no scripts exist in any partition.
bin_programs = [os.path.basename(path) for path in
glob.glob("{}/../*/bin/*".format(self.computer_partition_root_path))]
self.assertTrue(bin_programs) # just to check the glob was correct.
self.assertNotIn('runUnitTest', bin_programs)
self.assertNotIn('runTestSuite', bin_programs)
This diff is collapsed.
...@@ -74,34 +74,14 @@ waitress = 1.1.0 ...@@ -74,34 +74,14 @@ waitress = 1.1.0
z3c.etestbrowser = 2.0.1 z3c.etestbrowser = 2.0.1
zope.testbrowser = 5.2.4 zope.testbrowser = 5.2.4
# Required by:
# slapos.toolbox==0.81
GitPython = 2.1.11
# Required by: # Required by:
# zope.testbrowser==5.2.4 # zope.testbrowser==5.2.4
WSGIProxy2 = 0.4.4 WSGIProxy2 = 0.4.4
# Required by:
# slapos.toolbox==0.81
atomize = 0.2.0
# Required by: # Required by:
# WebTest==2.0.30 # WebTest==2.0.30
beautifulsoup4 = 4.6.3 beautifulsoup4 = 4.6.3
# Required by:
# slapos.toolbox==0.81
feedparser = 5.2.1
# Required by:
# slapos.toolbox==0.81
lockfile = 0.12.2
# Required by:
# slapos.toolbox==0.81
passlib = 1.7.1
# Required by: # Required by:
# zope.testbrowser==5.2.4 # zope.testbrowser==5.2.4
zope.cachedescriptors = 4.3.1 zope.cachedescriptors = 4.3.1
......
# ERP5 test
This software release is simply to run the test suite from `../erp5/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-ERP5-TEST` in test result module.
# THIS IS NOT A BUILDOUT FILE, despite purposedly using a compatible syntax.
# The only allowed lines here are (regexes):
# - "^#" comments, copied verbatim
# - "^[" section beginings, copied verbatim
# - lines containing an "=" sign which must fit in the following categorie.
# - "^\s*filename\s*=\s*path\s*$" where "path" is relative to this file
# Copied verbatim.
# - "^\s*hashtype\s*=.*" where "hashtype" is one of the values supported
# by the re-generation script.
# Re-generated.
# - other lines are copied verbatim
# Substitution (${...:...}), extension ([buildout] extends = ...) and
# section inheritance (< = ...) are NOT supported (but you should really
# not need these here).
[template]
filename = instance.cfg.in
md5sum = 6d126917e17c00ee012c4cf0a52429d1
[buildout]
parts =
slapos-test-runner
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration
computer = $${slap-connection:computer-id}
partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
[download-source]
recipe = slapos.recipe.build:gitclone
git-executable = ${git:location}/bin/git
[slapos]
<= download-source
repository = ${slapos-repository:location}
[create-directory]
recipe = slapos.cookbook:mkdirectory
bin = $${buildout:directory}/bin
working-dir = $${buildout:directory}/tmp/
[slapos-test-runner]
recipe = slapos.cookbook:wrapper
wrapper-path = $${create-directory:bin}/runTestSuite
command-line =
${buildout:bin-directory}/runTestSuite
--python_interpreter=${buildout:bin-directory}/${eggs:interpreter}
--source_code_path_list=$${slapos:location}/software/erp5/test
# XXX we need "standard" path entries to compile softwares inside test
# XXX can't we just inherit $PATH ?
environment =
PATH=${buildout:bin-directory}:/bin/:/usr/bin/
LOCAL_IPV4=$${slap-configuration:ipv4-random}
GLOBAL_IPV6=$${slap-configuration:ipv6-random}
SLAPOS_TEST_WORKING_DIR=$${create-directory:working-dir}
[buildout]
extends =
../../../../component/git/buildout.cfg
../../../../stack/slapos.cfg
./buildout.hash.cfg
parts =
slapos-cookbook
eggs
template
[setup-develop-egg]
recipe = zc.recipe.egg:develop
[slapos.test.erp5-setup]
<= setup-develop-egg
egg = slapos.test.erp5
setup = ${slapos-repository:location}/software/erp5/test/
[eggs]
recipe = zc.recipe.egg
eggs =
${slapos.test.erp5-setup:egg}
slapos.core
entry-points =
runTestSuite=erp5.util.testsuite:runTestSuite
scripts =
runTestSuite
slapos
interpreter=
python_for_test
[git-clone-repository]
recipe = slapos.recipe.build:gitclone
git-executable = ${git:location}/bin/git
forbid-download-cache = true
branch = master
[slapos-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.git
[template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg
mode = 640
[versions]
erp5.util = 0.4.56
slapos.recipe.template = 4.3
# kvm test
This software release is simply to run the test suite from `../kvm/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-KVM-TEST` in test result module.
# THIS IS NOT A BUILDOUT FILE, despite purposedly using a compatible syntax.
# The only allowed lines here are (regexes):
# - "^#" comments, copied verbatim
# - "^[" section beginings, copied verbatim
# - lines containing an "=" sign which must fit in the following categorie.
# - "^\s*filename\s*=\s*path\s*$" where "path" is relative to this file
# Copied verbatim.
# - "^\s*hashtype\s*=.*" where "hashtype" is one of the values supported
# by the re-generation script.
# Re-generated.
# - other lines are copied verbatim
# Substitution (${...:...}), extension ([buildout] extends = ...) and
# section inheritance (< = ...) are NOT supported (but you should really
# not need these here).
[template]
filename = instance.cfg.in
md5sum = 8109649ec9ba66de3ac67b742c28c349
[buildout]
parts =
slapos-test-runner
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration
computer = $${slap-connection:computer-id}
partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
[download-source]
recipe = slapos.recipe.build:gitclone
git-executable = ${git:location}/bin/git
[slapos]
<= download-source
repository = ${slapos-repository:location}
[create-directory]
recipe = slapos.cookbook:mkdirectory
bin = $${buildout:directory}/bin
working-dir = $${buildout:directory}/tmp/
[slapos-test-runner]
recipe = slapos.cookbook:wrapper
wrapper-path = $${create-directory:bin}/runTestSuite
command-line =
${buildout:bin-directory}/runTestSuite
--python_interpreter=${buildout:bin-directory}/${eggs:interpreter}
--source_code_path_list=$${slapos:location}/software/kvm/test
# XXX slapos.cookbook:wrapper does not allow extending env, so we add some default $PATH entries ( not sure they are needed )
environment =
PATH=${buildout:bin-directory}:/usr/bin/:/bin/
LOCAL_IPV4=$${slap-configuration:ipv4-random}
GLOBAL_IPV6=$${slap-configuration:ipv6-random}
SLAPOS_TEST_WORKING_DIR=$${create-directory:working-dir}
[buildout]
extends =
../../../../component/git/buildout.cfg
../../../../stack/slapos.cfg
./buildout.hash.cfg
parts =
slapos-cookbook
eggs
template
[setup-develop-egg]
recipe = zc.recipe.egg:develop
[slapos.test.kvm-setup]
<= setup-develop-egg
egg = slapos.test.kvm
setup = ${slapos-repository:location}/software/kvm/test/
[eggs]
recipe = zc.recipe.egg
eggs =
${slapos.test.kvm-setup:egg}
slapos.core
entry-points =
runTestSuite=erp5.util.testsuite:runTestSuite
scripts =
runTestSuite
slapos
interpreter=
python_for_test
[git-clone-repository]
recipe = slapos.recipe.build:gitclone
git-executable = ${git:location}/bin/git
forbid-download-cache = true
branch = master
[slapos-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.git
[template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg
mode = 640
[versions]
# clear the version of tested eggs, to make sure we installed the developped ones
slapos.test.kvm =
erp5.util = 0.4.56
pyasn1 = 0.4.2
slapos.recipe.template = 4.3
pysftp = 0.2.9
# powerdns test
This software release is simply to run the test suite from `../powerdns/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-POWERDNS-TEST` in test result module.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
# Selenium Server test
This software release is simply to run the test suite from `../seleniumrunner/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-SELENIUMRUNNER-TEST` in test result module.
This diff is collapsed.
This diff is collapsed.
# slaprunner test
This software release is simply to run the test suite from `../slaprunner/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-SLAPRUNNER-TEST` in test result module.
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