Commit 4dcb408d authored by Rafael Monnerat's avatar Rafael Monnerat

Update Release Candidate

parents b4f241b6 e24c67b2
...@@ -40,7 +40,7 @@ make-targets = ...@@ -40,7 +40,7 @@ make-targets =
-j1 install_sw install_ssldirs && -j1 install_sw install_ssldirs &&
rm -f ${:certs}/* && rm -f ${:certs}/* &&
for i in ${ca-certificates:location}/certs/*/*.crt; do for i in ${ca-certificates:location}/certs/*/*.crt; do
ln -sv $i ${:certs}/`${:location}/bin/openssl x509 -hash -noout -in $i`.0 ln -sfv $i ${:certs}/`${:location}/bin/openssl x509 -hash -noout -in $i`.0
; done ; done
environment = environment =
PERL=${perl:location}/bin/perl PERL=${perl:location}/bin/perl
......
...@@ -47,7 +47,7 @@ environment = ...@@ -47,7 +47,7 @@ environment =
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
ignore-existing = true ignore-existing = true
filename = ${:_buildout_section_name_} filename = ${:_buildout_section_name_}
url = http://cdimage.debian.org/cdimage/${:release}/${:arch}/iso-cd/debian-${:version}-${:arch}-netinst.iso url = https://cdimage.debian.org/cdimage/${:release}/${:arch}/iso-cd/debian-${:version}-${:arch}-netinst.iso
release = archive/${:version} release = archive/${:version}
download-only = true download-only = true
mode = 0644 mode = 0644
...@@ -70,7 +70,6 @@ md5sum = 19dcfc381bd3e609c6056216d203f5bc ...@@ -70,7 +70,6 @@ md5sum = 19dcfc381bd3e609c6056216d203f5bc
[debian-amd64-netinst.iso] [debian-amd64-netinst.iso]
# Download the installer of Debian 9 (Stretch) # Download the installer of Debian 9 (Stretch)
<= debian-amd64-netinst-base <= debian-amd64-netinst-base
release = release/current
version = 9.4.0 version = 9.4.0
md5sum = 73bd8aaaeb843745ec939f6ae3906e48 md5sum = 73bd8aaaeb843745ec939f6ae3906e48
......
...@@ -96,6 +96,7 @@ prefix = ${buildout:rootdir}/parts/${:_buildout_section_name_} ...@@ -96,6 +96,7 @@ prefix = ${buildout:rootdir}/parts/${:_buildout_section_name_}
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
make-options += make-options +=
INSTALL_PREFIX=${buildout:destdir} INSTALL_PREFIX=${buildout:destdir}
DESTDIR=${buildout:destdir}
environment = environment =
PERL5LIB=${perl:location}/lib/5.26.1/ PERL5LIB=${perl:location}/lib/5.26.1/
......
...@@ -27,7 +27,7 @@ md5sum = 8bfbb358b51f90374067879f8db1e91c ...@@ -27,7 +27,7 @@ md5sum = 8bfbb358b51f90374067879f8db1e91c
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 = https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz url = https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz
md5sum = 7283da4a3a6e939adcd8f919be4ba41a md5sum = 7283da4a3a6e939adcd8f919be4ba41a
[tomcat7-output] [tomcat7-output]
......
...@@ -39,4 +39,7 @@ class Recipe(GenericBaseRecipe): ...@@ -39,4 +39,7 @@ class Recipe(GenericBaseRecipe):
for path in sorted(self.directory.itervalues()): for path in sorted(self.directory.itervalues()):
if path and not os.path.isdir(path): if path and not os.path.isdir(path):
os.makedirs(path, self.mode) os.makedirs(path, self.mode)
# WARNING: This recipe is currently used to create directories that will
# contain user data (e.g. NEO db). Such directories must never
# be purged by the uninstallation of a recipe.
return [] return []
...@@ -6,6 +6,10 @@ ...@@ -6,6 +6,10 @@
# #
############################### ###############################
[variables]
status_dirbasename = status
statistic_dirbasename = statistic
[directory] [directory]
recipe = slapos.cookbook:mkdirectory recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc etc = $${buildout:directory}/etc
...@@ -22,14 +26,15 @@ cron-lines = $${:etc}/cron.lines ...@@ -22,14 +26,15 @@ cron-lines = $${:etc}/cron.lines
crontabs = $${:etc}/crontabs crontabs = $${:etc}/crontabs
cronstamps = $${:etc}/cronstamps cronstamps = $${:etc}/cronstamps
backup = $${:srv}/backup backup = $${:srv}/backup
status = $${:srv}/status status = $${:srv}/$${variables:status_dirbasename}
statistic = $${:srv}/statistic statistic = $${:srv}/$${variables:statistic_dirbasename}
backupscript = $${:etc}/backup backupscript = $${:etc}/backup
www = $${:srv}/www www = $${:srv}/www
home = $${:etc}/home home = $${:etc}/home
promises = $${:etc}/promise promises = $${:etc}/promise
ssl = $${:etc}/ssl ssl = $${:etc}/ssl
ssh = $${:home}/.ssh ssh = $${:home}/.ssh
plugin = $${:etc}/plugin
################################# #################################
# Cron service # Cron service
...@@ -46,7 +51,8 @@ logfile = $${directory:log}/crond.log ...@@ -46,7 +51,8 @@ logfile = $${directory:log}/crond.log
################################# #################################
# Go throught slave list to set their configuration # Go throught slave list to set their configuration
{% for slave_instance in slave_instance_list -%} {% for slave_instance in slave_instance_list -%}
{% set slave_reference = slave_instance.get('slave_reference') -%} {% set orig_slave_reference = slave_instance.get('slave_reference') -%}
{% set slave_reference = orig_slave_reference.replace(' ', '_') -%}
{% set frequency = slave_instance.get('frequency', '') -%} {% set frequency = slave_instance.get('frequency', '') -%}
{% set hostname = slave_instance.get('hostname', '') -%} {% set hostname = slave_instance.get('hostname', '') -%}
{% set connection = slave_instance.get('connection', '') -%} {% set connection = slave_instance.get('connection', '') -%}
...@@ -92,11 +98,29 @@ storage-path = {{ '$${' ~ slave_reference }}-backup-private_key:public_key} ...@@ -92,11 +98,29 @@ storage-path = {{ '$${' ~ slave_reference }}-backup-private_key:public_key}
# Publish slave {{ slave_reference }} information # Publish slave {{ slave_reference }} information
[{{ slave_reference }}-backup-publish] [{{ slave_reference }}-backup-publish]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
-slave-reference = {{ slave_reference }} -slave-reference = {{ orig_slave_reference }}
authorized_key = {{ '$${' ~ slave_reference }}-backup-read-public_key:readline} authorized_key = {{ '$${' ~ slave_reference }}-backup-read-public_key:readline}
rss = https://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/{{ '$${' ~ slave_reference }}-backup-script:status_name}.rss rss = https://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/{{ '$${' ~ slave_reference }}-backup-script:status_name}.rss
{% do part_list.append("%s-backup-publish" % slave_reference) -%} {% do part_list.append("%s-backup-publish" % slave_reference) -%}
[{{ slave_reference }}-promise-check-backup]
recipe = slapos.cookbook:promise.plugin
eggs =
slapos.toolbox
output = $${directory:plugin}/{{ slave_reference }}_check_backup.py
content =
from slapos.promise.plugin.backupserver_check_backup import RunPromise
config-status_dirbasename = $${variables:status_dirbasename}
config-status_name = {{ '$${' ~ slave_reference }}-backup-script:status_name}
config-status_fullpath = {{ '$${' ~ slave_reference }}-backup-script:status_log}
config-script_fullpath = {{ '$${' ~ slave_reference }}-backup-script:output}
config-cron_frequency = {{ frequency }}
config-monitor_url = $${monitor-publish:monitor-base-url}
config-statistic_dirbasename = $${variables:statistic_dirbasename}
config-statistic_name = {{ '$${' ~ slave_reference }}-backup-script:statistic_name}
mode = 600
{% do part_list.append("%s-promise-check-backup" % slave_reference) -%}
[{{ slave_reference }}-backup-script] [{{ slave_reference }}-backup-script]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${template-backup-script:output} url = ${template-backup-script:output}
...@@ -148,6 +172,7 @@ frequency = */5 * * * * ...@@ -148,6 +172,7 @@ frequency = */5 * * * *
[publish-global-rss] [publish-global-rss]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
<= monitor-publish
rss = https://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/$${update-rss-script:global_rss} rss = https://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/$${update-rss-script:global_rss}
{% set crontab_line_list_string = " ".join(crontab_line_list) -%} {% set crontab_line_list_string = " ".join(crontab_line_list) -%}
...@@ -187,14 +212,30 @@ ssl_key = $${directory:ssl}/nginx.key ...@@ -187,14 +212,30 @@ ssl_key = $${directory:ssl}/nginx.key
ssl_csr = $${directory:ssl}/nginx.csr ssl_csr = $${directory:ssl}/nginx.csr
ssl_crt = $${directory:ssl}/nginx.crt ssl_crt = $${directory:ssl}/nginx.crt
#################################
# Monitoring
#################################
[monitor-instance-parameter]
monitor-httpd-port = 9687
[monitor-conf-parameters]
private-path-list +=
$${directory:statistic}
$${directory:status}
# Add parts generated by template # Add parts generated by template
[buildout] [buildout]
extends =
${monitor-template:rendered}
parts = parts =
dcron-service dcron-service
nginx-service nginx-service
nginx-listen-promise nginx-listen-promise
activate-crontab-file activate-crontab-file
publish-global-rss publish-global-rss
monitor-base
{% for part in part_list -%} {% for part in part_list -%}
{{ ' %s' % part }} {{ ' %s' % part }}
{% endfor -%} {% endfor -%}
......
...@@ -6,39 +6,40 @@ extends = ...@@ -6,39 +6,40 @@ extends =
../../component/openssl/buildout.cfg ../../component/openssl/buildout.cfg
../../component/nginx/buildout.cfg ../../component/nginx/buildout.cfg
../../component/rdiff-backup/buildout.cfg ../../component/rdiff-backup/buildout.cfg
# ../../component/duplicity/buildout.cfg
# ../../component/git/buildout.cfg
# ../../component/subversion/buildout.cfg
../../component/rsync/buildout.cfg ../../component/rsync/buildout.cfg
../../component/openssh/buildout.cfg ../../component/openssh/buildout.cfg
../../component/grep/buildout.cfg ../../component/grep/buildout.cfg
../../component/findutils/buildout.cfg ../../component/findutils/buildout.cfg
# ../../stack/flask.cfg ../../component/util-linux/buildout.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
../../stack/monitor/buildout.cfg
parts = parts =
extra-eggs extra-eggs
monitor-extra-eggs
rdiff-backup rdiff-backup
# duplicity
dcron dcron
logrotate logrotate
nginx nginx
openssl openssl
# git
# subversion
rsync rsync
# flask-egg
template template
template-pullrdiffbackup template-pullrdiffbackup
template-backup-script template-backup-script
template-crontab-line template-crontab-line
slapos-cookbook slapos-cookbook
[monitor-extra-eggs]
recipe = zc.recipe.egg
eggs =
${monitor-eggs:eggs}
[extra-eggs] [extra-eggs]
recipe = zc.recipe.egg recipe = zc.recipe.egg
interpreter = pythonforrssgen interpreter = pythonforrssgen
eggs = eggs =
PyRSS2Gen PyRSS2Gen
python_dateutil
########################################################## ##########################################################
# Service startup scripts and configuration files # Service startup scripts and configuration files
...@@ -67,7 +68,7 @@ mode = 0644 ...@@ -67,7 +68,7 @@ mode = 0644
[template-backup-script] [template-backup-script]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/template-backup-script.sh.in url = ${:_profile_base_location_}/template-backup-script.sh.in
md5sum = fa79e0307e12e2f5b1f2adbd261995fc md5sum = 4c75f8462eaef2d8fcf24627e5f3575a
output = ${buildout:directory}/template-backup-script.sh.in output = ${buildout:directory}/template-backup-script.sh.in
mode = 0644 mode = 0644
...@@ -88,14 +89,14 @@ mode = 0644 ...@@ -88,14 +89,14 @@ mode = 0644
[status2rss] [status2rss]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/status2rss.py url = ${:_profile_base_location_}/status2rss.py
md5sum = a023694817975e73998fb9187a6015d6 md5sum = 432d22bb0f67df5203bbc5d1134a952b
output = ${buildout:directory}/status2rss.py output = ${buildout:directory}/status2rss.py
mode = 0644 mode = 0644
[template-update-rss-script] [template-update-rss-script]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/template-update-rss.sh.in url = ${:_profile_base_location_}/template-update-rss.sh.in
md5sum = 529058c54e873ab26f7920c868b23c50 md5sum = 80b3746568bc8e308a1f337bdaa2441c
output = ${buildout:directory}/template-update-rss.sh.in output = ${buildout:directory}/template-update-rss.sh.in
mode = 0644 mode = 0644
...@@ -105,7 +106,7 @@ mode = 0644 ...@@ -105,7 +106,7 @@ mode = 0644
[template-pullrdiffbackup] [template-pullrdiffbackup]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-pullrdiffbackup.cfg.in url = ${:_profile_base_location_}/instance-pullrdiffbackup.cfg.in
md5sum = a2fb7b0cdd944be99da4122eb6f07749 md5sum = 537ab12f3885660e59d280ee40e379ac
output = ${buildout:directory}/template-pullrdiffbackup.cfg output = ${buildout:directory}/template-pullrdiffbackup.cfg
mode = 0644 mode = 0644
...@@ -116,15 +117,13 @@ md5sum = 42021b325159dff29e4bd4e33b8ff2f3 ...@@ -116,15 +117,13 @@ md5sum = 42021b325159dff29e4bd4e33b8ff2f3
output = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
mode = 0644 mode = 0644
[rdiff-backup]
eggs =
${rdiff-backup-build-1.3.4:egg}
[versions] [versions]
# 1.3.4nxdX is invalid version string, thus pached version string is not '1.3.4nxdX+SlapOSPatched001' rdiff-backup = 1.0.5+SlapOSPatched001
# but '1.3.4nxdX-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
PyRSS2Gen = 1.1 PyRSS2Gen = 1.1
apache-libcloud = 2.3.0
gitdb2 = 2.0.5
smmap2 = 2.0.5
...@@ -2,7 +2,7 @@ import datetime ...@@ -2,7 +2,7 @@ import datetime
import uuid import uuid
import PyRSS2Gen import PyRSS2Gen
import sys import sys
from email.utils import parsedate_tz, mktime_tz from dateutil.parser import parse
import base64 import base64
# Based on http://thehelpfulhacker.net/2011/03/27/a-rss-feed-for-your-crontabs/ # Based on http://thehelpfulhacker.net/2011/03/27/a-rss-feed-for-your-crontabs/
...@@ -23,13 +23,13 @@ while 1: ...@@ -23,13 +23,13 @@ while 1:
if not line: if not line:
break break
time, statistic, desc = line.split(',', 2) time, statistic, desc = line.split(', ', 2)
rss_item = PyRSS2Gen.RSSItem( rss_item = PyRSS2Gen.RSSItem(
title = desc, title = desc,
description = "<p>%s</p>" % "<br/>".join(("%s, %s\n<a href='http://www.nongnu.org/rdiff-backup/FAQ.html#statistics'>Lastest statistic</a>\n%s" % (time, desc, description = "<p>%s</p>" % "<br/>".join(("%s, %s\n<a href='http://www.nongnu.org/rdiff-backup/FAQ.html#statistics'>Lastest statistic</a>\n%s" % (time, desc,
open(statistic).read())).split("\n")), open(statistic).read())).split("\n")),
pubDate = datetime.datetime.fromtimestamp(mktime_tz(parsedate_tz(time))), pubDate = parse(time),
guid = PyRSS2Gen.Guid(base64.b64encode("%s, %s" % (time, desc)), isPermaLink=0) guid = PyRSS2Gen.Guid(base64.b64encode("%s, %s" % (time, desc)), isPermaLink=0)
) )
items.append(rss_item) items.append(rss_item)
......
#!${dash-output:dash} #!${dash-output:dash}
# trap "echo Backing up failed for $${:hostname}" ERR # don't run if rdiff-backup is still running
# in that case, the promise will detect that previous rdiff backup took too long and report an error
${util-linux:location}/bin/flock --nb $${:status_log}.lock true || exit
export HOME=$${directory:home} export HOME=$${directory:home}
# Clean status file (no history needed)
${coreutils-output:rm} -f $${:status_log}
${coreutils-output:rm} -f $${:statistic_log}
# Inform about beginning of backup # Inform about beginning of backup
${coreutils-output:echo} "`${coreutils-output:date} -u`,$${:statistic_log}, $${:hostname} backup running" >> $${:status_log} ${coreutils-output:echo} "`${coreutils-output:date} --iso-8601=seconds -u`, $${:statistic_log}, $${:hostname}, backup running" > $${:status_log}
${coreutils-output:echo} "Available only if backup succeed." >> $${:statistic_log} ${coreutils-output:echo} "Available only if backup succeed." > $${:statistic_log}
# set -e # set -e
cd $${:datadirectory} cd $${:datadirectory}
${rdiff-backup-output:rdiff-backup} \ ${util-linux:location}/bin/flock $${:status_log}.lock \
${rdiff-backup-output:rdiff-backup} \
$${:exclude_string} \ $${:exclude_string} \
--include='$${:include}' \ --include='$${:include}' \
--exclude='**' \ --exclude='**' \
--remote-schema '${openssh-output:ssh} -6 -q -T -y -o "StrictHostKeyChecking no" -i $${:sshkey} -p $${:connection_port} %s $${:remote_schema}' \ --remote-schema '${openssh-output:ssh} -q -T -y -o "StrictHostKeyChecking no" -i $${:sshkey} -p $${:connection_port} %s $${:remote_schema}' \
$${:connection}::/ ./ $${:connection}::/ ./
RESULT=$? RESULT=$?
# Inform about backup status # Inform about backup status
${coreutils-output:rm} -f $${:status_log}
if [ $RESULT -eq 0 ] if [ $RESULT -eq 0 ]
then then
${coreutils-output:echo} "`${coreutils-output:date} -u`,$${:statistic_log},$${:hostname} backup success" >> $${:status_log} ${coreutils-output:echo} "`${coreutils-output:date} --iso-8601=seconds -u`, $${:statistic_log}, $${:hostname}, backup success" >> $${:status_log}
${coreutils-output:rm} -f $${:statistic_log} ${findutils-output:find} rdiff-backup-data/ -maxdepth 1 -name "session_statistic*" | ${coreutils-output:sort} | ${coreutils-output:tail} -n 1 | ${findutils-output:xargs} ${rdiff-backup-output:rdiff-backup} --calculate-average > $${:statistic_log}
${findutils-output:find} rdiff-backup-data/ -maxdepth 1 -name "session_statistic*" | ${coreutils-output:sort} | ${coreutils-output:tail} -n 1 | ${findutils-output:xargs} ${rdiff-backup-output:rdiff-backup} --calculate-average >> $${:statistic_log}
else else
${coreutils-output:echo} "`${coreutils-output:date} -u`,$${:statistic_log},$${:hostname} backup failed" >> $${:status_log} ${coreutils-output:echo} "`${coreutils-output:date} --iso-8601=seconds -u`, $${:statistic_log}, $${:hostname}, backup failed" >> $${:status_log}
fi fi
# python scripts/verify_with_sudo.py ./ $${:connection}:/
...@@ -3,15 +3,15 @@ ...@@ -3,15 +3,15 @@
STATUS_DIR=$${directory:status} STATUS_DIR=$${directory:status}
RSS_DIR=$${directory:www} RSS_DIR=$${directory:www}
CAT=${coreutils-output:cat} TAIL=${coreutils-output:tail}
PYTHON=${buildout:directory}/bin/${extra-eggs:interpreter} PYTHON=${buildout:directory}/bin/${extra-eggs:interpreter}
STATUS2RSS=${status2rss:output} STATUS2RSS=${status2rss:output}
BASENAME=${coreutils-output:basename} BASENAME=${coreutils-output:basename}
for status in $STATUS_DIR/* for status in $STATUS_DIR/*.txt
do do
NAME=`$BASENAME $status` NAME=`$BASENAME $status`
$CAT $status | $PYTHON $STATUS2RSS "Backup status $NAME" "https://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/$NAME.rss" > $RSS_DIR/$NAME.rss $TAIL -n 1 -q $status | $PYTHON $STATUS2RSS "Backup status $NAME" "https://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/$NAME.rss" > $RSS_DIR/$NAME.rss
done done
$CAT $STATUS_DIR/* | $PYTHON $STATUS2RSS "Full backup status $${:global_rss}" "https://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/$${:global_rss}" > $RSS_DIR/$${:global_rss} $TAIL -n 1 -q $STATUS_DIR/*.txt | $PYTHON $STATUS2RSS "Full backup status $${:global_rss}" "https://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/$${:global_rss}" > $RSS_DIR/$${:global_rss}
...@@ -456,11 +456,15 @@ the proxy:: ...@@ -456,11 +456,15 @@ the proxy::
QUIC Protocol QUIC Protocol
============= =============
Experimental QUIC available in Caddy is not configurable, thus it is required to open port ``udp:11443`` on the machine, like:: Note: QUIC support in Caddy is really experimental. It can result with silently having problems with QUIC connections or hanging Caddy process. So in case of QUIC error ``QUIC_NETWORK_IDLE_TIMEOUT`` or ``QUIC_PEER_GOING_AWAY`` it is required to restart caddy process.
iptables -I INPUT -p udp --dport 11443 --destination ${ip} -j ACCEPT Note: Chrome will refuse to connect to QUIC on different port then HTTPS has been served. As Caddy binds to high ports, if QUIC is wanted, the browser need to connect to high port too.
where ``${ip}`` is the IP of the partition with running caddy process. Experimental QUIC available in Caddy is not configurable. If caddy is configured to bind to HTTPS port ``${port}``, QUIC is going to be advertised on this port only. It is not possible to configure another public port in case of port rewriting.
So it is required to ``DNAT`` from ``${public IP}`` of the computer to the computer partition running caddy ``${local IP}`` with configured port::
iptables -A DNAT -d ${public IP}/32 -p udp -m udp --dport ${port} -j DNAT --to-destination ${local IP}:${port}
Notes Notes
......
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
* README: cleanup the documentation, explain various specifics * README: cleanup the documentation, explain various specifics
* 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 appended to ``apache-certificate`` if not already there
* BUG?? check that changing ``apache-certificate`` on master partition results in reloading slave partition * BUG?? check that changing ``apache-certificate`` on master partition results in reloading slave partition
* provide ``apache-frontend`` to ``caddy-frontend`` migration information
* (new) ``type:websocket`` slave * (new) ``type:websocket`` slave
* ``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 ?*
* ``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
* have ``caddy-frontend`` specific parameters, with backward compatibility to ``apache-frontend`` ones:
* ``apache-ca-certificate``
* ``apache-certificate`` and ``apache-key``
* use `slapos!326 <https://lab.nexedi.com/nexedi/slapos/merge_requests/326>`_, and especially `note about complex restart scenarios <https://lab.nexedi.com/nexedi/slapos/merge_requests/326#note_60198>`_, instead of self-developed graceful restart scripts
* move out ``test/utils.py`` and use it from shared python distribution * move out ``test/utils.py`` and use it from shared python distribution
* provide various tricks for older browsers::
# The following directives modify normal HTTP response behavior to
# handle known problems with browser implementations.
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
# The following directive disables redirects on non-GET requests for
# a directory that does not include the trailing slash. This fixes a
# problem with Microsoft WebFolders which does not appropriately handle
# redirects for folders with DAV methods.
# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
* check, and if needed apply, Apache-like SSL configuration switches::
# SSL Configuration
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:HIGH:!aNULL:!MD5
SSLHonorCipherOrder on
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
* reduce the time of configuration validation (in ``instance-apache-frontend.cfg.in`` sections ``[configtest]``, ``[caddy-configuration]``, ``[nginx-configuration]``), as it is not scalable on frontend with 2000+ slaves (takes few minutes instead of few, < 5, seconds), issue posted `upstream <https://github.com/mholt/caddy/issues/2220>`_ * reduce the time of configuration validation (in ``instance-apache-frontend.cfg.in`` sections ``[configtest]``, ``[caddy-configuration]``, ``[nginx-configuration]``), as it is not scalable on frontend with 2000+ slaves (takes few minutes instead of few, < 5, seconds), issue posted `upstream <https://github.com/mholt/caddy/issues/2220>`_
* drop ``6tunnel`` and use ``bind`` in Caddy configuration, as soon as multiple binds will be possible, tracked in upstream `bind: support multiple values <https://github.com/mholt/caddy/pull/2128>`_ and `ipv6: does not bind on ipv4 and ipv6 for sites that resolve to both <https://github.com/mholt/caddy/issues/864>`_ * drop ``6tunnel`` and use ``bind`` in Caddy configuration, as soon as multiple binds will be possible, tracked in upstream `bind: support multiple values <https://github.com/mholt/caddy/pull/2128>`_ and `ipv6: does not bind on ipv4 and ipv6 for sites that resolve to both <https://github.com/mholt/caddy/issues/864>`_
* use caddy-frontend in `standalone style playbooks <https://lab.nexedi.com/nexedi/slapos.package/tree/master/playbook/roles/standalone-shared>`_ * use caddy-frontend in `standalone style playbooks <https://lab.nexedi.com/nexedi/slapos.package/tree/master/playbook/roles/standalone-shared>`_
* in ``templates/apache-custom-slave-list.cfg.in`` avoid repetetive ``part_list.append`` and use macro like in ERP5 SR (cf `Vincent's comment <https://lab.nexedi.com/nexedi/slapos/merge_requests/373#note_64362>`_) * in ``templates/apache-custom-slave-list.cfg.in`` avoid repetetive ``part_list.append`` and use macro like in ERP5 SR (cf `Vincent's comment <https://lab.nexedi.com/nexedi/slapos/merge_requests/373#note_64362>`_)
* **Jérome Perrin**: consider privacy implications/GDPR compliance of https://caddyserver.com/docs/telemetry and decide if we should leave it enabled. * **Jérome Perrin**: consider privacy implications/GDPR compliance of https://caddyserver.com/docs/telemetry and decide if we should leave it enabled.
Things which can't be implemented:
* use certificates valid forever in tests using `cryptography <https://pypi.org/project/cryptography/>`_, with `available example <https://lab.nexedi.com/nexedi/caucase/blob/1c9b9b6dfb062551549566d9792a1608f5e0c2d9/caucase/ca.py#L460-552>`_
* **REASON**: it is impossible to generate certificate without `Not Valid After`, even with `cryptography <https://pypi.org/project/cryptography/>`_
...@@ -30,7 +30,7 @@ md5sum = 6a86edb96b171fbd0a59d0adc9cc906b ...@@ -30,7 +30,7 @@ md5sum = 6a86edb96b171fbd0a59d0adc9cc906b
[template-slave-list] [template-slave-list]
filename = templates/apache-custom-slave-list.cfg.in filename = templates/apache-custom-slave-list.cfg.in
md5sum = 434e00cbfee2f9c002b2a83084a48b4a md5sum = 232ee8c086db6f452e0c98e3869a2433
[template-slave-configuration] [template-slave-configuration]
filename = templates/custom-virtualhost.conf.in filename = templates/custom-virtualhost.conf.in
......
...@@ -112,6 +112,23 @@ crl = {{ custom_ssl_directory }}/crl/ ...@@ -112,6 +112,23 @@ crl = {{ custom_ssl_directory }}/crl/
[slave-log-directory-dict] [slave-log-directory-dict]
{{slave_reference}} = {{ slave_log_folder }} {{slave_reference}} = {{ slave_log_folder }}
[slave-log-directories]
<= slave-log-directory-dict
recipe = slapos.cookbook:mkdirectory
{% do part_list.append('slave-log-directories') %}
[caddy-log-access]
< = jinja2-template-base
template = {{frontend_configuration.get('template-log-access')}}
rendered = {{frontend_configuration.get('log-access-configuration')}}
extra-context =
section slave_log_directory slave-log-directory-dict
section slave_password slave-password
section parameter_dict caddy-log-access-parameters
{% do part_list.append('caddy-log-access') %}
[slave-password] [slave-password]
{{ slave_reference }} = {{ '${' + slave_password_section + ':passwd}' }} {{ slave_reference }} = {{ '${' + slave_password_section + ':passwd}' }}
...@@ -329,10 +346,6 @@ extra-context = ...@@ -329,10 +346,6 @@ extra-context =
{{ '\n' }} {{ '\n' }}
{% endfor %} {% endfor %}
[slave-log-directories]
<= slave-log-directory-dict
recipe = slapos.cookbook:mkdirectory
{#- Define IPv6 to IPV4 tunneling #} {#- Define IPv6 to IPV4 tunneling #}
[tunnel-6to4-base] [tunnel-6to4-base]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
...@@ -340,6 +353,7 @@ ipv4 = ${slap-network-information:local-ipv4} ...@@ -340,6 +353,7 @@ ipv4 = ${slap-network-information:local-ipv4}
ipv6 = ${slap-network-information:global-ipv6} ipv6 = ${slap-network-information:global-ipv6}
wrapper-path = {{ service_directory}}/6tunnel-${:ipv6-port} wrapper-path = {{ service_directory}}/6tunnel-${:ipv6-port}
command-line = {{ sixtunnel_executable }} -6 -4 -d -l ${:ipv6} ${:ipv6-port} ${:ipv4} ${:ipv4-port} command-line = {{ sixtunnel_executable }} -6 -4 -d -l ${:ipv6} ${:ipv6-port} ${:ipv4} ${:ipv4-port}
hash-files = ${buildout:directory}/software_release/buildout.cfg
[tunnel-6to4-base-http_port] [tunnel-6to4-base-http_port]
<= tunnel-6to4-base <= tunnel-6to4-base
...@@ -408,12 +422,10 @@ monitor-base-url = {{ monitor_base_url }} ...@@ -408,12 +422,10 @@ monitor-base-url = {{ monitor_base_url }}
[buildout] [buildout]
extends = {{ common_profile }} extends = {{ common_profile }}
parts += parts +=
slave-log-directories
{% for part in part_list %} {% for part in part_list %}
{{ ' %s' % part }} {{ ' %s' % part }}
{% endfor %} {% endfor %}
publish-caddy-information publish-caddy-information
caddy-log-access
tunnel-6to4-base-http_port tunnel-6to4-base-http_port
tunnel-6to4-base-https_port tunnel-6to4-base-https_port
tunnel-6to4-base-cached_port tunnel-6to4-base-cached_port
......
...@@ -35,6 +35,7 @@ import multiprocessing ...@@ -35,6 +35,7 @@ import multiprocessing
import subprocess import subprocess
from unittest import skip from unittest import skip
import ssl import ssl
import signal
from BaseHTTPServer import HTTPServer from BaseHTTPServer import HTTPServer
from BaseHTTPServer import BaseHTTPRequestHandler from BaseHTTPServer import BaseHTTPRequestHandler
from forcediphttpsadapter.adapters import ForcedIPHTTPSAdapter from forcediphttpsadapter.adapters import ForcedIPHTTPSAdapter
...@@ -54,8 +55,8 @@ from cryptography.hazmat.primitives import serialization ...@@ -54,8 +55,8 @@ from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.x509.oid import NameOID from cryptography.x509.oid import NameOID
LOCAL_IPV4 = os.environ['LOCAL_IPV4'] SLAPOS_TEST_IPV4 = os.environ['SLAPOS_TEST_IPV4']
GLOBAL_IPV6 = os.environ['GLOBAL_IPV6'] SLAPOS_TEST_IPV6 = os.environ['SLAPOS_TEST_IPV6']
# ports chosen to not collide with test systems # ports chosen to not collide with test systems
HTTP_PORT = '11080' HTTP_PORT = '11080'
...@@ -68,7 +69,7 @@ MONITOR_F2_HTTPD_PORT = '13002' ...@@ -68,7 +69,7 @@ MONITOR_F2_HTTPD_PORT = '13002'
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if os.environ.get('DEBUG'): if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
import unittest import unittest
...@@ -310,6 +311,9 @@ class TestDataMixin(object): ...@@ -310,6 +311,9 @@ class TestDataMixin(object):
self._test_file_list('run', [ self._test_file_list('run', [
# run by cron from time to time # run by cron from time to time
'monitor/monitor-collect.pid', 'monitor/monitor-collect.pid',
# may appear or not
'var/run/caddy_graceful_signature.tmp',
'var/run/nginx_graceful_signature.tmp',
]) ])
def test_supervisor_state(self): def test_supervisor_state(self):
...@@ -333,7 +337,7 @@ class HttpFrontendTestCase(SlapOSInstanceTestCase): ...@@ -333,7 +337,7 @@ class HttpFrontendTestCase(SlapOSInstanceTestCase):
@classmethod @classmethod
def getSoftwareURLList(cls): def getSoftwareURLList(cls):
return [os.path.realpath(os.environ['TEST_SR'])] return (os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'software.cfg')), )
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
...@@ -473,17 +477,17 @@ class SlaveHttpFrontendTestCase(HttpFrontendTestCase): ...@@ -473,17 +477,17 @@ class SlaveHttpFrontendTestCase(HttpFrontendTestCase):
@classmethod @classmethod
def startServerProcess(cls): def startServerProcess(cls):
server = HTTPServer( server = HTTPServer(
(LOCAL_IPV4, findFreeTCPPort(LOCAL_IPV4)), (SLAPOS_TEST_IPV4, findFreeTCPPort(SLAPOS_TEST_IPV4)),
TestHandler) TestHandler)
server_https = HTTPServer( server_https = HTTPServer(
(LOCAL_IPV4, findFreeTCPPort(LOCAL_IPV4)), (SLAPOS_TEST_IPV4, findFreeTCPPort(SLAPOS_TEST_IPV4)),
TestHandler) TestHandler)
cls.another_server_ca = CertificateAuthority("Another Server Root CA") cls.another_server_ca = CertificateAuthority("Another Server Root CA")
cls.test_server_ca = CertificateAuthority("Test Server Root CA") cls.test_server_ca = CertificateAuthority("Test Server Root CA")
key, key_pem, csr, csr_pem = createCSR( key, key_pem, csr, csr_pem = createCSR(
"testserver.example.com", LOCAL_IPV4) "testserver.example.com", SLAPOS_TEST_IPV4)
_, cls.test_server_certificate_pem = cls.test_server_ca.signCSR(csr) _, cls.test_server_certificate_pem = cls.test_server_ca.signCSR(csr)
cls.test_server_certificate_file = tempfile.NamedTemporaryFile( cls.test_server_certificate_file = tempfile.NamedTemporaryFile(
...@@ -717,7 +721,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -717,7 +721,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
return { return {
'domain': 'example.com', 'domain': 'example.com',
'nginx-domain': 'nginx.example.com', 'nginx-domain': 'nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
'apache-certificate': cls.certificate_pem, 'apache-certificate': cls.certificate_pem,
'apache-key': cls.key_pem, 'apache-key': cls.key_pem,
'-frontend-authorized-slave-string': '-frontend-authorized-slave-string':
...@@ -1069,7 +1073,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1069,7 +1073,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://empty.example.com', 'url': 'http://empty.example.com',
'site_url': 'http://empty.example.com', 'site_url': 'http://empty.example.com',
'secure_access': 'https://empty.example.com', 'secure_access': 'https://empty.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
} }
) )
...@@ -1130,7 +1134,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1130,7 +1134,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://url.example.com', 'url': 'http://url.example.com',
'site_url': 'http://url.example.com', 'site_url': 'http://url.example.com',
'secure_access': 'https://url.example.com', 'secure_access': 'https://url.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1191,17 +1195,17 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1191,17 +1195,17 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://url.example.com', 'url': 'http://url.example.com',
'site_url': 'http://url.example.com', 'site_url': 'http://url.example.com',
'secure_access': 'https://url.example.com', 'secure_access': 'https://url.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
result_ipv6 = self.fakeHTTPSResult( result_ipv6 = self.fakeHTTPSResult(
parameter_dict['domain'], GLOBAL_IPV6, 'test-path', parameter_dict['domain'], SLAPOS_TEST_IPV6, 'test-path',
source_ip=GLOBAL_IPV6) source_ip=SLAPOS_TEST_IPV6)
self.assertEqual( self.assertEqual(
GLOBAL_IPV6, SLAPOS_TEST_IPV6,
result_ipv6.json()['Incoming Headers']['x-forwarded-for'] result_ipv6.json()['Incoming Headers']['x-forwarded-for']
) )
...@@ -1221,7 +1225,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1221,7 +1225,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://typezopepath.example.com', 'url': 'http://typezopepath.example.com',
'site_url': 'http://typezopepath.example.com', 'site_url': 'http://typezopepath.example.com',
'secure_access': 'https://typezopepath.example.com', 'secure_access': 'https://typezopepath.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1250,7 +1254,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1250,7 +1254,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://typezopedefaultpath.example.com', 'url': 'http://typezopedefaultpath.example.com',
'site_url': 'http://typezopedefaultpath.example.com', 'site_url': 'http://typezopedefaultpath.example.com',
'secure_access': 'https://typezopedefaultpath.example.com', 'secure_access': 'https://typezopedefaultpath.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1278,7 +1282,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1278,7 +1282,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://serveralias.example.com', 'url': 'http://serveralias.example.com',
'site_url': 'http://serveralias.example.com', 'site_url': 'http://serveralias.example.com',
'secure_access': 'https://serveralias.example.com', 'secure_access': 'https://serveralias.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1318,7 +1322,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1318,7 +1322,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://serveraliaswildcard.example.com', 'url': 'http://serveraliaswildcard.example.com',
'site_url': 'http://serveraliaswildcard.example.com', 'site_url': 'http://serveraliaswildcard.example.com',
'secure_access': 'https://serveraliaswildcard.example.com', 'secure_access': 'https://serveraliaswildcard.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1351,7 +1355,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1351,7 +1355,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://serveraliasduplicated.example.com', 'url': 'http://serveraliasduplicated.example.com',
'site_url': 'http://serveraliasduplicated.example.com', 'site_url': 'http://serveraliasduplicated.example.com',
'secure_access': 'https://serveraliasduplicated.example.com', 'secure_access': 'https://serveraliasduplicated.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1385,7 +1389,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1385,7 +1389,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://alias4.example.com', 'url': 'http://alias4.example.com',
'site_url': 'http://alias4.example.com', 'site_url': 'http://alias4.example.com',
'secure_access': 'https://alias4.example.com', 'secure_access': 'https://alias4.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1416,7 +1420,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1416,7 +1420,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://customdomainsslcrtsslkeysslcacrt.example.com', 'site_url': 'http://customdomainsslcrtsslkeysslcacrt.example.com',
'secure_access': 'secure_access':
'https://customdomainsslcrtsslkeysslcacrt.example.com', 'https://customdomainsslcrtsslkeysslcacrt.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1450,7 +1454,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1450,7 +1454,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://sslcacrtgarbage.example.com', 'site_url': 'http://sslcacrtgarbage.example.com',
'secure_access': 'secure_access':
'https://sslcacrtgarbage.example.com', 'https://sslcacrtgarbage.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1470,7 +1474,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1470,7 +1474,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://sslcacrtdoesnotmatch.example.com', 'site_url': 'http://sslcacrtdoesnotmatch.example.com',
'secure_access': 'secure_access':
'https://sslcacrtdoesnotmatch.example.com', 'https://sslcacrtdoesnotmatch.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1494,7 +1498,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1494,7 +1498,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://httpsonly.example.com', 'url': 'http://httpsonly.example.com',
'site_url': 'http://httpsonly.example.com', 'site_url': 'http://httpsonly.example.com',
'secure_access': 'https://httpsonly.example.com', 'secure_access': 'https://httpsonly.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1526,7 +1530,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1526,7 +1530,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://customdomain.example.com', 'url': 'http://customdomain.example.com',
'site_url': 'http://customdomain.example.com', 'site_url': 'http://customdomain.example.com',
'secure_access': 'https://customdomain.example.com', 'secure_access': 'https://customdomain.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1550,7 +1554,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1550,7 +1554,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://*.customdomain.example.com', 'url': 'http://*.customdomain.example.com',
'site_url': 'http://*.customdomain.example.com', 'site_url': 'http://*.customdomain.example.com',
'secure_access': 'https://*.customdomain.example.com', 'secure_access': 'https://*.customdomain.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1576,7 +1580,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1576,7 +1580,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://customdomainsslcrtsslkey.example.com', 'url': 'http://customdomainsslcrtsslkey.example.com',
'site_url': 'http://customdomainsslcrtsslkey.example.com', 'site_url': 'http://customdomainsslcrtsslkey.example.com',
'secure_access': 'https://customdomainsslcrtsslkey.example.com', 'secure_access': 'https://customdomainsslcrtsslkey.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1600,7 +1604,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1600,7 +1604,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://typezope.example.com', 'url': 'http://typezope.example.com',
'site_url': 'http://typezope.example.com', 'site_url': 'http://typezope.example.com',
'secure_access': 'https://typezope.example.com', 'secure_access': 'https://typezope.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1647,7 +1651,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1647,7 +1651,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://typezopevirtualhostroothttpport.example.com', 'site_url': 'http://typezopevirtualhostroothttpport.example.com',
'secure_access': 'secure_access':
'https://typezopevirtualhostroothttpport.example.com', 'https://typezopevirtualhostroothttpport.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1674,7 +1678,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1674,7 +1678,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://typezopevirtualhostroothttpsport.example.com', 'site_url': 'http://typezopevirtualhostroothttpsport.example.com',
'secure_access': 'secure_access':
'https://typezopevirtualhostroothttpsport.example.com', 'https://typezopevirtualhostroothttpsport.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1703,7 +1707,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1703,7 +1707,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://typenotebook.nginx.example.com', 'url': 'http://typenotebook.nginx.example.com',
'site_url': 'http://typenotebook.nginx.example.com', 'site_url': 'http://typenotebook.nginx.example.com',
'secure_access': 'https://typenotebook.nginx.example.com', 'secure_access': 'https://typenotebook.nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1744,7 +1748,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1744,7 +1748,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://typeeventsource.nginx.example.com', 'url': 'http://typeeventsource.nginx.example.com',
'site_url': 'http://typeeventsource.nginx.example.com', 'site_url': 'http://typeeventsource.nginx.example.com',
'secure_access': 'https://typeeventsource.nginx.example.com', 'secure_access': 'https://typeeventsource.nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1785,7 +1789,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1785,7 +1789,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://typeredirect.example.com', 'url': 'http://typeredirect.example.com',
'site_url': 'http://typeredirect.example.com', 'site_url': 'http://typeredirect.example.com',
'secure_access': 'https://typeredirect.example.com', 'secure_access': 'https://typeredirect.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1816,7 +1820,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1816,7 +1820,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'http://sslproxyverifysslproxycacrtunverified.example.com', 'http://sslproxyverifysslproxycacrtunverified.example.com',
'secure_access': 'secure_access':
'https://sslproxyverifysslproxycacrtunverified.example.com', 'https://sslproxyverifysslproxycacrtunverified.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1853,7 +1857,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1853,7 +1857,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://sslproxyverifysslproxycacrt.example.com', 'url': 'http://sslproxyverifysslproxycacrt.example.com',
'site_url': 'http://sslproxyverifysslproxycacrt.example.com', 'site_url': 'http://sslproxyverifysslproxycacrt.example.com',
'secure_access': 'https://sslproxyverifysslproxycacrt.example.com', 'secure_access': 'https://sslproxyverifysslproxycacrt.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1915,7 +1919,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1915,7 +1919,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://sslproxyverifyunverified.example.com', 'url': 'http://sslproxyverifyunverified.example.com',
'site_url': 'http://sslproxyverifyunverified.example.com', 'site_url': 'http://sslproxyverifyunverified.example.com',
'secure_access': 'https://sslproxyverifyunverified.example.com', 'secure_access': 'https://sslproxyverifyunverified.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1948,7 +1952,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1948,7 +1952,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'http://enablecachesslproxyverifysslproxycacrtunverified.example.com', 'http://enablecachesslproxyverifysslproxycacrtunverified.example.com',
'secure_access': 'secure_access':
'https://enablecachesslproxyverifysslproxycacrtunverified.example.com', 'https://enablecachesslproxyverifysslproxycacrtunverified.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -1987,7 +1991,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1987,7 +1991,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'http://enablecachesslproxyverifysslproxycacrt.example.com', 'http://enablecachesslproxyverifysslproxycacrt.example.com',
'secure_access': 'secure_access':
'https://enablecachesslproxyverifysslproxycacrt.example.com', 'https://enablecachesslproxyverifysslproxycacrt.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2080,7 +2084,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2080,7 +2084,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://enablecachesslproxyverifyunverified.example.com', 'site_url': 'http://enablecachesslproxyverifyunverified.example.com',
'secure_access': 'secure_access':
'https://enablecachesslproxyverifyunverified.example.com', 'https://enablecachesslproxyverifyunverified.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2112,7 +2116,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2112,7 +2116,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'http://typezopesslproxyverifysslproxycacrtunverified.example.com', 'http://typezopesslproxyverifysslproxycacrtunverified.example.com',
'secure_access': 'secure_access':
'https://typezopesslproxyverifysslproxycacrtunverified.example.com', 'https://typezopesslproxyverifysslproxycacrtunverified.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2150,7 +2154,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2150,7 +2154,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://typezopesslproxyverifysslproxycacrt.example.com', 'site_url': 'http://typezopesslproxyverifysslproxycacrt.example.com',
'secure_access': 'secure_access':
'https://typezopesslproxyverifysslproxycacrt.example.com', 'https://typezopesslproxyverifysslproxycacrt.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2200,7 +2204,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2200,7 +2204,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://typezopesslproxyverifyunverified.example.com', 'site_url': 'http://typezopesslproxyverifyunverified.example.com',
'secure_access': 'secure_access':
'https://typezopesslproxyverifyunverified.example.com', 'https://typezopesslproxyverifyunverified.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2227,7 +2231,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2227,7 +2231,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://monitoripv6test.example.com', 'url': 'http://monitoripv6test.example.com',
'site_url': 'http://monitoripv6test.example.com', 'site_url': 'http://monitoripv6test.example.com',
'secure_access': 'https://monitoripv6test.example.com', 'secure_access': 'https://monitoripv6test.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2269,7 +2273,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2269,7 +2273,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://monitoripv4test.example.com', 'url': 'http://monitoripv4test.example.com',
'site_url': 'http://monitoripv4test.example.com', 'site_url': 'http://monitoripv4test.example.com',
'secure_access': 'https://monitoripv4test.example.com', 'secure_access': 'https://monitoripv4test.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2311,7 +2315,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2311,7 +2315,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://re6stoptimaltest.example.com', 'url': 'http://re6stoptimaltest.example.com',
'site_url': 'http://re6stoptimaltest.example.com', 'site_url': 'http://re6stoptimaltest.example.com',
'secure_access': 'https://re6stoptimaltest.example.com', 'secure_access': 'https://re6stoptimaltest.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2354,7 +2358,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2354,7 +2358,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://enablecache.example.com', 'url': 'http://enablecache.example.com',
'site_url': 'http://enablecache.example.com', 'site_url': 'http://enablecache.example.com',
'secure_access': 'https://enablecache.example.com', 'secure_access': 'https://enablecache.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2446,7 +2450,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2446,7 +2450,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://enablecachedisablenocacherequest.example.com', 'site_url': 'http://enablecachedisablenocacherequest.example.com',
'secure_access': 'secure_access':
'https://enablecachedisablenocacherequest.example.com', 'https://enablecachedisablenocacherequest.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2499,7 +2503,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2499,7 +2503,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://enablecachedisableviaheader.example.com', 'site_url': 'http://enablecachedisableviaheader.example.com',
'secure_access': 'secure_access':
'https://enablecachedisableviaheader.example.com', 'https://enablecachedisableviaheader.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2543,7 +2547,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2543,7 +2547,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://enablehttp2false.example.com', 'site_url': 'http://enablehttp2false.example.com',
'secure_access': 'secure_access':
'https://enablehttp2false.example.com', 'https://enablehttp2false.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2592,7 +2596,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2592,7 +2596,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://enablehttp2default.example.com', 'site_url': 'http://enablehttp2default.example.com',
'secure_access': 'secure_access':
'https://enablehttp2default.example.com', 'https://enablehttp2default.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2642,7 +2646,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2642,7 +2646,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'site_url': 'http://prefergzipencodingtobackend.example.com', 'site_url': 'http://prefergzipencodingtobackend.example.com',
'secure_access': 'secure_access':
'https://prefergzipencodingtobackend.example.com', 'https://prefergzipencodingtobackend.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2679,7 +2683,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2679,7 +2683,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://disabledcookielist.example.com', 'url': 'http://disabledcookielist.example.com',
'site_url': 'http://disabledcookielist.example.com', 'site_url': 'http://disabledcookielist.example.com',
'secure_access': 'https://disabledcookielist.example.com', 'secure_access': 'https://disabledcookielist.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2727,7 +2731,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2727,7 +2731,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'apache_custom_http_s-accepted') 'apache_custom_http_s-accepted')
self.assertLogAccessUrlWithPop(parameter_dict) self.assertLogAccessUrlWithPop(parameter_dict)
self.assertEqual( self.assertEqual(
{'replication_number': '1', 'public-ipv4': LOCAL_IPV4}, {'replication_number': '1', 'public-ipv4': SLAPOS_TEST_IPV4},
parameter_dict parameter_dict
) )
...@@ -2825,7 +2829,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2825,7 +2829,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'caddy_custom_http_s-accepted') 'caddy_custom_http_s-accepted')
self.assertLogAccessUrlWithPop(parameter_dict) self.assertLogAccessUrlWithPop(parameter_dict)
self.assertEqual( self.assertEqual(
{'replication_number': '1', 'public-ipv4': LOCAL_IPV4}, {'replication_number': '1', 'public-ipv4': SLAPOS_TEST_IPV4},
parameter_dict parameter_dict
) )
...@@ -2886,7 +2890,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2886,7 +2890,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'url': 'http://urlhttpsurl.example.com', 'url': 'http://urlhttpsurl.example.com',
'site_url': 'http://urlhttpsurl.example.com', 'site_url': 'http://urlhttpsurl.example.com',
'secure_access': 'https://urlhttpsurl.example.com', 'secure_access': 'https://urlhttpsurl.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2911,7 +2915,7 @@ class TestReplicateSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2911,7 +2915,7 @@ class TestReplicateSlave(SlaveHttpFrontendTestCase, TestDataMixin):
return { return {
'domain': 'example.com', 'domain': 'example.com',
'nginx-domain': 'nginx.example.com', 'nginx-domain': 'nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
'apache-certificate': cls.certificate_pem, 'apache-certificate': cls.certificate_pem,
'apache-key': cls.key_pem, 'apache-key': cls.key_pem,
'-frontend-quantity': 2, '-frontend-quantity': 2,
...@@ -2944,7 +2948,7 @@ class TestReplicateSlave(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -2944,7 +2948,7 @@ class TestReplicateSlave(SlaveHttpFrontendTestCase, TestDataMixin):
'url': 'http://replicate.example.com', 'url': 'http://replicate.example.com',
'site_url': 'http://replicate.example.com', 'site_url': 'http://replicate.example.com',
'secure_access': 'https://replicate.example.com', 'secure_access': 'https://replicate.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -2982,7 +2986,7 @@ class TestEnableHttp2ByDefaultFalseSlave(SlaveHttpFrontendTestCase, ...@@ -2982,7 +2986,7 @@ class TestEnableHttp2ByDefaultFalseSlave(SlaveHttpFrontendTestCase,
return { return {
'domain': 'example.com', 'domain': 'example.com',
'nginx-domain': 'nginx.example.com', 'nginx-domain': 'nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
'apache-certificate': cls.certificate_pem, 'apache-certificate': cls.certificate_pem,
'apache-key': cls.key_pem, 'apache-key': cls.key_pem,
'enable-http2-by-default': 'false', 'enable-http2-by-default': 'false',
...@@ -3018,7 +3022,7 @@ class TestEnableHttp2ByDefaultFalseSlave(SlaveHttpFrontendTestCase, ...@@ -3018,7 +3022,7 @@ class TestEnableHttp2ByDefaultFalseSlave(SlaveHttpFrontendTestCase,
'site_url': 'http://enablehttp2default.example.com', 'site_url': 'http://enablehttp2default.example.com',
'secure_access': 'secure_access':
'https://enablehttp2default.example.com', 'https://enablehttp2default.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3037,7 +3041,7 @@ class TestEnableHttp2ByDefaultFalseSlave(SlaveHttpFrontendTestCase, ...@@ -3037,7 +3041,7 @@ class TestEnableHttp2ByDefaultFalseSlave(SlaveHttpFrontendTestCase,
'site_url': 'http://enablehttp2false.example.com', 'site_url': 'http://enablehttp2false.example.com',
'secure_access': 'secure_access':
'https://enablehttp2false.example.com', 'https://enablehttp2false.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3056,7 +3060,7 @@ class TestEnableHttp2ByDefaultFalseSlave(SlaveHttpFrontendTestCase, ...@@ -3056,7 +3060,7 @@ class TestEnableHttp2ByDefaultFalseSlave(SlaveHttpFrontendTestCase,
'site_url': 'http://enablehttp2true.example.com', 'site_url': 'http://enablehttp2true.example.com',
'secure_access': 'secure_access':
'https://enablehttp2true.example.com', 'https://enablehttp2true.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3072,7 +3076,7 @@ class TestEnableHttp2ByDefaultDefaultSlave(SlaveHttpFrontendTestCase, ...@@ -3072,7 +3076,7 @@ class TestEnableHttp2ByDefaultDefaultSlave(SlaveHttpFrontendTestCase,
return { return {
'domain': 'example.com', 'domain': 'example.com',
'nginx-domain': 'nginx.example.com', 'nginx-domain': 'nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
'apache-certificate': cls.certificate_pem, 'apache-certificate': cls.certificate_pem,
'apache-key': cls.key_pem, 'apache-key': cls.key_pem,
'port': HTTPS_PORT, 'port': HTTPS_PORT,
...@@ -3107,7 +3111,7 @@ class TestEnableHttp2ByDefaultDefaultSlave(SlaveHttpFrontendTestCase, ...@@ -3107,7 +3111,7 @@ class TestEnableHttp2ByDefaultDefaultSlave(SlaveHttpFrontendTestCase,
'site_url': 'http://enablehttp2default.example.com', 'site_url': 'http://enablehttp2default.example.com',
'secure_access': 'secure_access':
'https://enablehttp2default.example.com', 'https://enablehttp2default.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3126,7 +3130,7 @@ class TestEnableHttp2ByDefaultDefaultSlave(SlaveHttpFrontendTestCase, ...@@ -3126,7 +3130,7 @@ class TestEnableHttp2ByDefaultDefaultSlave(SlaveHttpFrontendTestCase,
'site_url': 'http://enablehttp2false.example.com', 'site_url': 'http://enablehttp2false.example.com',
'secure_access': 'secure_access':
'https://enablehttp2false.example.com', 'https://enablehttp2false.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3145,7 +3149,7 @@ class TestEnableHttp2ByDefaultDefaultSlave(SlaveHttpFrontendTestCase, ...@@ -3145,7 +3149,7 @@ class TestEnableHttp2ByDefaultDefaultSlave(SlaveHttpFrontendTestCase,
'site_url': 'http://enablehttp2true.example.com', 'site_url': 'http://enablehttp2true.example.com',
'secure_access': 'secure_access':
'https://enablehttp2true.example.com', 'https://enablehttp2true.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3258,7 +3262,7 @@ class TestMalformedBackenUrlSlave(SlaveHttpFrontendTestCase, ...@@ -3258,7 +3262,7 @@ class TestMalformedBackenUrlSlave(SlaveHttpFrontendTestCase,
return { return {
'domain': 'example.com', 'domain': 'example.com',
'nginx-domain': 'nginx.example.com', 'nginx-domain': 'nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
'apache-certificate': cls.certificate_pem, 'apache-certificate': cls.certificate_pem,
'apache-key': cls.key_pem, 'apache-key': cls.key_pem,
'port': HTTPS_PORT, 'port': HTTPS_PORT,
...@@ -3314,7 +3318,7 @@ class TestMalformedBackenUrlSlave(SlaveHttpFrontendTestCase, ...@@ -3314,7 +3318,7 @@ class TestMalformedBackenUrlSlave(SlaveHttpFrontendTestCase,
'url': 'http://empty.example.com', 'url': 'http://empty.example.com',
'site_url': 'http://empty.example.com', 'site_url': 'http://empty.example.com',
'secure_access': 'https://empty.example.com', 'secure_access': 'https://empty.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3382,9 +3386,9 @@ class TestDefaultMonitorHttpdPort(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3382,9 +3386,9 @@ class TestDefaultMonitorHttpdPort(SlaveHttpFrontendTestCase, TestDataMixin):
'monitor-httpd.conf')).read() 'monitor-httpd.conf')).read()
self.assertTrue( self.assertTrue(
'Listen [%s]:8196' % (GLOBAL_IPV6,) in master_monitor_conf) 'Listen [%s]:8196' % (SLAPOS_TEST_IPV6,) in master_monitor_conf)
self.assertTrue( self.assertTrue(
'Listen [%s]:8072' % (GLOBAL_IPV6,) in slave_monitor_conf) 'Listen [%s]:8072' % (SLAPOS_TEST_IPV6,) in slave_monitor_conf)
class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin): class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin):
...@@ -3393,7 +3397,7 @@ class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3393,7 +3397,7 @@ class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin):
return { return {
'domain': 'example.com', 'domain': 'example.com',
'nginx-domain': 'nginx.example.com', 'nginx-domain': 'nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
'enable-quic': 'true', 'enable-quic': 'true',
'apache-certificate': cls.certificate_pem, 'apache-certificate': cls.certificate_pem,
'apache-key': cls.key_pem, 'apache-key': cls.key_pem,
...@@ -3440,7 +3444,7 @@ class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3440,7 +3444,7 @@ class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin):
'url': 'http://url.example.com', 'url': 'http://url.example.com',
'site_url': 'http://url.example.com', 'site_url': 'http://url.example.com',
'secure_access': 'https://url.example.com', 'secure_access': 'https://url.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3463,6 +3467,7 @@ class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3463,6 +3467,7 @@ class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertKeyWithPop('Date', result.headers) self.assertKeyWithPop('Date', result.headers)
self.assertKeyWithPop('Content-Length', result.headers) self.assertKeyWithPop('Content-Length', result.headers)
def assertQUIC():
quic_status, quic_result = getQUIC( quic_status, quic_result = getQUIC(
'https://%s/%s' % (parameter_dict['domain'], 'test-path'), 'https://%s/%s' % (parameter_dict['domain'], 'test-path'),
parameter_dict['public-ipv4'], parameter_dict['public-ipv4'],
...@@ -3484,6 +3489,17 @@ class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3484,6 +3489,17 @@ class TestQuicEnabled(SlaveHttpFrontendTestCase, TestDataMixin):
self.assertTrue(key in j, 'No key %r in %s' % (key, j)) self.assertTrue(key in j, 'No key %r in %s' % (key, j))
self.assertEqual('/test-path', j[key]) self.assertEqual('/test-path', j[key])
assertQUIC()
# https://github.com/mholt/caddy/issues/2394
# after sending USR1 to Caddy QUIC does not work, check current behaviour
caddy_pid = [
q['pid'] for q
in self.getSupervisorRPCServer().supervisor.getAllProcessInfo()
if 'frontend_caddy' in q['name']][0]
os.kill(caddy_pid, signal.SIGUSR1)
assertQUIC()
class TestSlaveBadParameters(SlaveHttpFrontendTestCase, TestDataMixin): class TestSlaveBadParameters(SlaveHttpFrontendTestCase, TestDataMixin):
@classmethod @classmethod
...@@ -3491,7 +3507,7 @@ class TestSlaveBadParameters(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3491,7 +3507,7 @@ class TestSlaveBadParameters(SlaveHttpFrontendTestCase, TestDataMixin):
return { return {
'domain': 'example.com', 'domain': 'example.com',
'nginx-domain': 'nginx.example.com', 'nginx-domain': 'nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
'apache-certificate': cls.certificate_pem, 'apache-certificate': cls.certificate_pem,
'apache-key': cls.key_pem, 'apache-key': cls.key_pem,
'-frontend-authorized-slave-string': '_caddy_custom_http_s-reject', '-frontend-authorized-slave-string': '_caddy_custom_http_s-reject',
...@@ -3603,7 +3619,7 @@ https://www.google.com {}""", ...@@ -3603,7 +3619,7 @@ https://www.google.com {}""",
'url': 'http://serveraliassame.example.com', 'url': 'http://serveraliassame.example.com',
'site_url': 'http://serveraliassame.example.com', 'site_url': 'http://serveraliassame.example.com',
'secure_access': 'https://serveraliassame.example.com', 'secure_access': 'https://serveraliassame.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3627,7 +3643,7 @@ https://www.google.com {}""", ...@@ -3627,7 +3643,7 @@ https://www.google.com {}""",
'url': 'http://re6stoptimaltestunsafe.example.com', 'url': 'http://re6stoptimaltestunsafe.example.com',
'site_url': 'http://re6stoptimaltestunsafe.example.com', 'site_url': 'http://re6stoptimaltestunsafe.example.com',
'secure_access': 'https://re6stoptimaltestunsafe.example.com', 'secure_access': 'https://re6stoptimaltestunsafe.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3670,7 +3686,7 @@ https://www.google.com {}""", ...@@ -3670,7 +3686,7 @@ https://www.google.com {}""",
'url': 'http://re6stoptimaltestnocomma.example.com', 'url': 'http://re6stoptimaltestnocomma.example.com',
'site_url': 'http://re6stoptimaltestnocomma.example.com', 'site_url': 'http://re6stoptimaltestnocomma.example.com',
'secure_access': 'https://re6stoptimaltestnocomma.example.com', 'secure_access': 'https://re6stoptimaltestnocomma.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3728,7 +3744,7 @@ https://www.google.com {}""", ...@@ -3728,7 +3744,7 @@ https://www.google.com {}""",
'site_url': 'http://virtualhostroothttpportunsafe.example.com', 'site_url': 'http://virtualhostroothttpportunsafe.example.com',
'secure_access': 'secure_access':
'https://virtualhostroothttpportunsafe.example.com', 'https://virtualhostroothttpportunsafe.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3755,7 +3771,7 @@ https://www.google.com {}""", ...@@ -3755,7 +3771,7 @@ https://www.google.com {}""",
'site_url': 'http://virtualhostroothttpsportunsafe.example.com', 'site_url': 'http://virtualhostroothttpsportunsafe.example.com',
'secure_access': 'secure_access':
'https://virtualhostroothttpsportunsafe.example.com', 'https://virtualhostroothttpsportunsafe.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3784,7 +3800,7 @@ https://www.google.com {}""", ...@@ -3784,7 +3800,7 @@ https://www.google.com {}""",
'url': 'http://defaultpathunsafe.example.com', 'url': 'http://defaultpathunsafe.example.com',
'site_url': 'http://defaultpathunsafe.example.com', 'site_url': 'http://defaultpathunsafe.example.com',
'secure_access': 'https://defaultpathunsafe.example.com', 'secure_access': 'https://defaultpathunsafe.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3812,7 +3828,7 @@ https://www.google.com {}""", ...@@ -3812,7 +3828,7 @@ https://www.google.com {}""",
'url': 'http://monitoripv4testunsafe.example.com', 'url': 'http://monitoripv4testunsafe.example.com',
'site_url': 'http://monitoripv4testunsafe.example.com', 'site_url': 'http://monitoripv4testunsafe.example.com',
'secure_access': 'https://monitoripv4testunsafe.example.com', 'secure_access': 'https://monitoripv4testunsafe.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3854,7 +3870,7 @@ https://www.google.com {}""", ...@@ -3854,7 +3870,7 @@ https://www.google.com {}""",
'url': 'http://monitoripv6testunsafe.example.com', 'url': 'http://monitoripv6testunsafe.example.com',
'site_url': 'http://monitoripv6testunsafe.example.com', 'site_url': 'http://monitoripv6testunsafe.example.com',
'secure_access': 'https://monitoripv6testunsafe.example.com', 'secure_access': 'https://monitoripv6testunsafe.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -3912,7 +3928,7 @@ class TestDuplicateSiteKeyProtection(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3912,7 +3928,7 @@ class TestDuplicateSiteKeyProtection(SlaveHttpFrontendTestCase, TestDataMixin):
return { return {
'domain': 'example.com', 'domain': 'example.com',
'nginx-domain': 'nginx.example.com', 'nginx-domain': 'nginx.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
'apache-certificate': cls.certificate_pem, 'apache-certificate': cls.certificate_pem,
'apache-key': cls.key_pem, 'apache-key': cls.key_pem,
'-frontend-authorized-slave-string': '_caddy_custom_http_s-reject', '-frontend-authorized-slave-string': '_caddy_custom_http_s-reject',
...@@ -3984,7 +4000,7 @@ class TestDuplicateSiteKeyProtection(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -3984,7 +4000,7 @@ class TestDuplicateSiteKeyProtection(SlaveHttpFrontendTestCase, TestDataMixin):
'url': 'http://duplicate.example.com', 'url': 'http://duplicate.example.com',
'site_url': 'http://duplicate.example.com', 'site_url': 'http://duplicate.example.com',
'secure_access': 'https://duplicate.example.com', 'secure_access': 'https://duplicate.example.com',
'public-ipv4': LOCAL_IPV4, 'public-ipv4': SLAPOS_TEST_IPV4,
}, },
parameter_dict parameter_dict
) )
...@@ -4006,56 +4022,3 @@ class TestDuplicateSiteKeyProtection(SlaveHttpFrontendTestCase, TestDataMixin): ...@@ -4006,56 +4022,3 @@ class TestDuplicateSiteKeyProtection(SlaveHttpFrontendTestCase, TestDataMixin):
}, },
parameter_dict parameter_dict
) )
class AutoRestartTestCase(SlaveHttpFrontendTestCase):
@classmethod
def getInstanceParameterDict(cls):
return {
'-frontend-1-state': 'stopped',
}
@classmethod
def getSlaveParameterDictDict(cls):
return {
'test': {
'url': cls.backend_url,
},
}
@staticmethod
def generateHashFromFiles(file_list):
import hashlib
hasher = hashlib.md5()
for path in file_list:
with open(path, 'r') as afile:
buf = afile.read()
hasher.update("%s\n" % len(buf))
hasher.update(buf)
hash = hasher.hexdigest()
return hash
def test_hashes(self):
hash_files = [
'software_release/buildout.cfg',
]
expected_process_names = [
'frontend_caddy-{hash}-on-watch',
'frontend_nginx-{hash}-on-watch',
'trafficserver-{hash}-on-watch',
'certificate_authority-{hash}-on-watch',
'crond-{hash}',
]
supervisor = self.getSupervisorRPCServer().supervisor
process_names = [process['name']
for process in supervisor.getAllProcessInfo()]
hash_files = [os.path.join(self.computer_partition_root_path, path)
for path in hash_files]
for name in expected_process_names:
h = self.generateHashFromFiles(hash_files)
expected_process_name = name.format(hash=h)
self.assertIn(expected_process_name, process_names)
...@@ -3,12 +3,12 @@ TestDefaultMonitorHttpdPort-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestDefaultMonitorHttpdPort-0:certificate_authority-on-watch RUNNING
TestDefaultMonitorHttpdPort-0:crond-{hash} RUNNING TestDefaultMonitorHttpdPort-0:crond-{hash} RUNNING
TestDefaultMonitorHttpdPort-0:monitor-httpd-{hash}-on-watch EXITED TestDefaultMonitorHttpdPort-0:monitor-httpd-{hash}-on-watch EXITED
TestDefaultMonitorHttpdPort-0:monitor-httpd-graceful EXITED TestDefaultMonitorHttpdPort-0:monitor-httpd-graceful EXITED
TestDefaultMonitorHttpdPort-1:6tunnel-26011-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-26011-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-26012-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-26012-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-4443-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-4443-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-8080-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-8080-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-8081-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-8081-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:6tunnel-9443-on-watch STOPPED TestDefaultMonitorHttpdPort-1:6tunnel-9443-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:bootstrap-monitor STOPPED TestDefaultMonitorHttpdPort-1:bootstrap-monitor STOPPED
TestDefaultMonitorHttpdPort-1:certificate_authority-{hash}-on-watch STOPPED TestDefaultMonitorHttpdPort-1:certificate_authority-{hash}-on-watch STOPPED
TestDefaultMonitorHttpdPort-1:crond-{hash} STOPPED TestDefaultMonitorHttpdPort-1:crond-{hash} STOPPED
......
TestDuplicateSiteKeyProtection-0/var/run/monitor-httpd.pid TestDuplicateSiteKeyProtection-0/var/run/monitor-httpd.pid
TestDuplicateSiteKeyProtection-0/var/run/monitor/monitor-bootstrap.pid TestDuplicateSiteKeyProtection-0/var/run/monitor/monitor-bootstrap.pid
TestDuplicateSiteKeyProtection-1/var/run/caddy_graceful_signature TestDuplicateSiteKeyProtection-1/var/run/caddy_graceful_signature
TestDuplicateSiteKeyProtection-1/var/run/caddy_graceful_signature.tmp
TestDuplicateSiteKeyProtection-1/var/run/caddy_validate_signature TestDuplicateSiteKeyProtection-1/var/run/caddy_validate_signature
TestDuplicateSiteKeyProtection-1/var/run/caddy_validate_signature.status TestDuplicateSiteKeyProtection-1/var/run/caddy_validate_signature.status
TestDuplicateSiteKeyProtection-1/var/run/httpd.pid TestDuplicateSiteKeyProtection-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestDuplicateSiteKeyProtection-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestDuplicateSiteKeyProtection-1/var/run/monitor-httpd.pid
TestDuplicateSiteKeyProtection-1/var/run/monitor/monitor-bootstrap.pid TestDuplicateSiteKeyProtection-1/var/run/monitor/monitor-bootstrap.pid
TestDuplicateSiteKeyProtection-1/var/run/nginx.pid TestDuplicateSiteKeyProtection-1/var/run/nginx.pid
TestDuplicateSiteKeyProtection-1/var/run/nginx_graceful_signature TestDuplicateSiteKeyProtection-1/var/run/nginx_graceful_signature
TestDuplicateSiteKeyProtection-1/var/run/nginx_graceful_signature.tmp
TestDuplicateSiteKeyProtection-1/var/run/nginx_validate_signature TestDuplicateSiteKeyProtection-1/var/run/nginx_validate_signature
TestDuplicateSiteKeyProtection-1/var/run/nginx_validate_signature.status TestDuplicateSiteKeyProtection-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestDuplicateSiteKeyProtection-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestDuplicateSiteKeyProtection-0:certificate_authority-on-watch RUNNING
TestDuplicateSiteKeyProtection-0:crond-{hash} RUNNING TestDuplicateSiteKeyProtection-0:crond-{hash} RUNNING
TestDuplicateSiteKeyProtection-0:monitor-httpd-{hash}-on-watch RUNNING TestDuplicateSiteKeyProtection-0:monitor-httpd-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-0:monitor-httpd-graceful EXITED TestDuplicateSiteKeyProtection-0:monitor-httpd-graceful EXITED
TestDuplicateSiteKeyProtection-1:6tunnel-11080-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-11080-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-11443-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-11443-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-12080-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-12080-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-12443-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-12443-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-26011-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-26011-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:6tunnel-26012-on-watch RUNNING TestDuplicateSiteKeyProtection-1:6tunnel-26012-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:bootstrap-monitor EXITED TestDuplicateSiteKeyProtection-1:bootstrap-monitor EXITED
TestDuplicateSiteKeyProtection-1:certificate_authority-{hash}-on-watch RUNNING TestDuplicateSiteKeyProtection-1:certificate_authority-{hash}-on-watch RUNNING
TestDuplicateSiteKeyProtection-1:crond-{hash} RUNNING TestDuplicateSiteKeyProtection-1:crond-{hash} RUNNING
......
TestEnableHttp2ByDefaultDefaultSlave-0/var/run/monitor-httpd.pid TestEnableHttp2ByDefaultDefaultSlave-0/var/run/monitor-httpd.pid
TestEnableHttp2ByDefaultDefaultSlave-0/var/run/monitor/monitor-bootstrap.pid TestEnableHttp2ByDefaultDefaultSlave-0/var/run/monitor/monitor-bootstrap.pid
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/caddy_graceful_signature TestEnableHttp2ByDefaultDefaultSlave-1/var/run/caddy_graceful_signature
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/caddy_graceful_signature.tmp
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/caddy_validate_signature TestEnableHttp2ByDefaultDefaultSlave-1/var/run/caddy_validate_signature
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/caddy_validate_signature.status TestEnableHttp2ByDefaultDefaultSlave-1/var/run/caddy_validate_signature.status
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/httpd.pid TestEnableHttp2ByDefaultDefaultSlave-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestEnableHttp2ByDefaultDefaultSlave-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestEnableHttp2ByDefaultDefaultSlave-1/var/run/monitor-httpd.pid
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/monitor/monitor-bootstrap.pid TestEnableHttp2ByDefaultDefaultSlave-1/var/run/monitor/monitor-bootstrap.pid
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx.pid TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx.pid
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx_graceful_signature TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx_graceful_signature
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx_graceful_signature.tmp
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx_validate_signature TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx_validate_signature
TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx_validate_signature.status TestEnableHttp2ByDefaultDefaultSlave-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestEnableHttp2ByDefaultDefaultSlave-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestEnableHttp2ByDefaultDefaultSlave-0:certificate_authority-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-0:crond-{hash} RUNNING TestEnableHttp2ByDefaultDefaultSlave-0:crond-{hash} RUNNING
TestEnableHttp2ByDefaultDefaultSlave-0:monitor-httpd-{hash}-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-0:monitor-httpd-graceful EXITED TestEnableHttp2ByDefaultDefaultSlave-0:monitor-httpd-graceful EXITED
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-11080-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-11080-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-11443-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-11443-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-12080-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-12080-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-12443-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-12443-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-26011-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-26011-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-26012-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:6tunnel-26012-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:bootstrap-monitor EXITED TestEnableHttp2ByDefaultDefaultSlave-1:bootstrap-monitor EXITED
TestEnableHttp2ByDefaultDefaultSlave-1:certificate_authority-{hash}-on-watch RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultDefaultSlave-1:crond-{hash} RUNNING TestEnableHttp2ByDefaultDefaultSlave-1:crond-{hash} RUNNING
......
TestEnableHttp2ByDefaultFalseSlave-0/var/run/monitor-httpd.pid TestEnableHttp2ByDefaultFalseSlave-0/var/run/monitor-httpd.pid
TestEnableHttp2ByDefaultFalseSlave-0/var/run/monitor/monitor-bootstrap.pid TestEnableHttp2ByDefaultFalseSlave-0/var/run/monitor/monitor-bootstrap.pid
TestEnableHttp2ByDefaultFalseSlave-1/var/run/caddy_graceful_signature TestEnableHttp2ByDefaultFalseSlave-1/var/run/caddy_graceful_signature
TestEnableHttp2ByDefaultFalseSlave-1/var/run/caddy_graceful_signature.tmp
TestEnableHttp2ByDefaultFalseSlave-1/var/run/caddy_validate_signature TestEnableHttp2ByDefaultFalseSlave-1/var/run/caddy_validate_signature
TestEnableHttp2ByDefaultFalseSlave-1/var/run/caddy_validate_signature.status TestEnableHttp2ByDefaultFalseSlave-1/var/run/caddy_validate_signature.status
TestEnableHttp2ByDefaultFalseSlave-1/var/run/httpd.pid TestEnableHttp2ByDefaultFalseSlave-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestEnableHttp2ByDefaultFalseSlave-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestEnableHttp2ByDefaultFalseSlave-1/var/run/monitor-httpd.pid
TestEnableHttp2ByDefaultFalseSlave-1/var/run/monitor/monitor-bootstrap.pid TestEnableHttp2ByDefaultFalseSlave-1/var/run/monitor/monitor-bootstrap.pid
TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx.pid TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx.pid
TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx_graceful_signature TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx_graceful_signature
TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx_graceful_signature.tmp
TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx_validate_signature TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx_validate_signature
TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx_validate_signature.status TestEnableHttp2ByDefaultFalseSlave-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestEnableHttp2ByDefaultFalseSlave-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestEnableHttp2ByDefaultFalseSlave-0:certificate_authority-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-0:crond-{hash} RUNNING TestEnableHttp2ByDefaultFalseSlave-0:crond-{hash} RUNNING
TestEnableHttp2ByDefaultFalseSlave-0:monitor-httpd-{hash}-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-0:monitor-httpd-graceful EXITED TestEnableHttp2ByDefaultFalseSlave-0:monitor-httpd-graceful EXITED
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-11080-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-11080-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-11443-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-11443-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-12080-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-12080-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-12443-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-12443-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-26011-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-26011-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-26012-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:6tunnel-26012-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:bootstrap-monitor EXITED TestEnableHttp2ByDefaultFalseSlave-1:bootstrap-monitor EXITED
TestEnableHttp2ByDefaultFalseSlave-1:certificate_authority-{hash}-on-watch RUNNING TestEnableHttp2ByDefaultFalseSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestEnableHttp2ByDefaultFalseSlave-1:crond-{hash} RUNNING TestEnableHttp2ByDefaultFalseSlave-1:crond-{hash} RUNNING
......
TestMalformedBackenUrlSlave-0/var/run/monitor-httpd.pid TestMalformedBackenUrlSlave-0/var/run/monitor-httpd.pid
TestMalformedBackenUrlSlave-0/var/run/monitor/monitor-bootstrap.pid TestMalformedBackenUrlSlave-0/var/run/monitor/monitor-bootstrap.pid
TestMalformedBackenUrlSlave-1/var/run/caddy_graceful_signature TestMalformedBackenUrlSlave-1/var/run/caddy_graceful_signature
TestMalformedBackenUrlSlave-1/var/run/caddy_graceful_signature.tmp
TestMalformedBackenUrlSlave-1/var/run/caddy_validate_signature TestMalformedBackenUrlSlave-1/var/run/caddy_validate_signature
TestMalformedBackenUrlSlave-1/var/run/caddy_validate_signature.status TestMalformedBackenUrlSlave-1/var/run/caddy_validate_signature.status
TestMalformedBackenUrlSlave-1/var/run/httpd.pid TestMalformedBackenUrlSlave-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestMalformedBackenUrlSlave-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestMalformedBackenUrlSlave-1/var/run/monitor-httpd.pid
TestMalformedBackenUrlSlave-1/var/run/monitor/monitor-bootstrap.pid TestMalformedBackenUrlSlave-1/var/run/monitor/monitor-bootstrap.pid
TestMalformedBackenUrlSlave-1/var/run/nginx.pid TestMalformedBackenUrlSlave-1/var/run/nginx.pid
TestMalformedBackenUrlSlave-1/var/run/nginx_graceful_signature TestMalformedBackenUrlSlave-1/var/run/nginx_graceful_signature
TestMalformedBackenUrlSlave-1/var/run/nginx_graceful_signature.tmp
TestMalformedBackenUrlSlave-1/var/run/nginx_validate_signature TestMalformedBackenUrlSlave-1/var/run/nginx_validate_signature
TestMalformedBackenUrlSlave-1/var/run/nginx_validate_signature.status TestMalformedBackenUrlSlave-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestMalformedBackenUrlSlave-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestMalformedBackenUrlSlave-0:certificate_authority-on-watch RUNNING
TestMalformedBackenUrlSlave-0:crond-{hash} RUNNING TestMalformedBackenUrlSlave-0:crond-{hash} RUNNING
TestMalformedBackenUrlSlave-0:monitor-httpd-{hash}-on-watch RUNNING TestMalformedBackenUrlSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-0:monitor-httpd-graceful EXITED TestMalformedBackenUrlSlave-0:monitor-httpd-graceful EXITED
TestMalformedBackenUrlSlave-1:6tunnel-11080-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-11080-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-11443-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-11443-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-12080-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-12080-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-12443-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-12443-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-26011-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-26011-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:6tunnel-26012-on-watch RUNNING TestMalformedBackenUrlSlave-1:6tunnel-26012-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:bootstrap-monitor EXITED TestMalformedBackenUrlSlave-1:bootstrap-monitor EXITED
TestMalformedBackenUrlSlave-1:certificate_authority-{hash}-on-watch RUNNING TestMalformedBackenUrlSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestMalformedBackenUrlSlave-1:crond-{hash} RUNNING TestMalformedBackenUrlSlave-1:crond-{hash} RUNNING
......
TestMasterRequest-0/var/log/monitor-httpd-error.log TestMasterRequest-0/var/log/monitor-httpd-error.log
TestMasterRequest-1/var/log/nginx-access.log
TestMasterRequest-1/var/log/nginx-error.log
TestMasterRequest-1/var/log/trafficserver/manager.log
TestMasterRequest-1/var/log/trafficserver/traffic.out
\ No newline at end of file
TestMasterRequest-0/var/run/monitor-httpd.pid TestMasterRequest-0/var/run/monitor-httpd.pid
TestMasterRequest-0/var/run/monitor/monitor-bootstrap.pid TestMasterRequest-0/var/run/monitor/monitor-bootstrap.pid
TestMasterRequest-1/var/run/caddy_graceful_signature
TestMasterRequest-1/var/run/caddy_validate_signature
TestMasterRequest-1/var/run/caddy_validate_signature.status
TestMasterRequest-1/var/run/monitor/monitor-bootstrap.pid
TestMasterRequest-1/var/run/nginx.pid
TestMasterRequest-1/var/run/nginx_graceful_signature
TestMasterRequest-1/var/run/nginx_validate_signature
TestMasterRequest-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -2,3 +2,7 @@ TestMasterRequest-0/etc/plugin/__init__.py ...@@ -2,3 +2,7 @@ TestMasterRequest-0/etc/plugin/__init__.py
TestMasterRequest-0/etc/plugin/buildout-TestMasterRequest-0-status.py TestMasterRequest-0/etc/plugin/buildout-TestMasterRequest-0-status.py
TestMasterRequest-0/etc/plugin/check-free-disk-space.py TestMasterRequest-0/etc/plugin/check-free-disk-space.py
TestMasterRequest-0/etc/plugin/monitor-bootstrap-status.py TestMasterRequest-0/etc/plugin/monitor-bootstrap-status.py
TestMasterRequest-1/etc/plugin/__init__.py
TestMasterRequest-1/etc/plugin/buildout-TestMasterRequest-1-status.py
TestMasterRequest-1/etc/plugin/check-free-disk-space.py
TestMasterRequest-1/etc/plugin/monitor-bootstrap-status.py
\ No newline at end of file
TestMasterRequest-0/etc/promise/monitor-http-frontend TestMasterRequest-0/etc/promise/monitor-http-frontend
TestMasterRequest-0/etc/promise/monitor-httpd-listening-on-tcp TestMasterRequest-0/etc/promise/monitor-httpd-listening-on-tcp
TestMasterRequest-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set TestMasterRequest-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestMasterRequest-1/etc/promise/caddy-frontend-is-running-actual-software-release
TestMasterRequest-1/etc/promise/caddy_cached
TestMasterRequest-1/etc/promise/caddy_frontend_ipv4_http
TestMasterRequest-1/etc/promise/caddy_frontend_ipv4_https
TestMasterRequest-1/etc/promise/caddy_frontend_ipv6_http
TestMasterRequest-1/etc/promise/caddy_frontend_ipv6_https
TestMasterRequest-1/etc/promise/caddy_ssl_cached
TestMasterRequest-1/etc/promise/frontend-caddy-configuration-promise
TestMasterRequest-1/etc/promise/monitor-http-frontend TestMasterRequest-1/etc/promise/monitor-http-frontend
TestMasterRequest-1/etc/promise/monitor-httpd-listening-on-tcp
TestMasterRequest-1/etc/promise/nginx-configuration-promise
TestMasterRequest-1/etc/promise/nginx_frontend_ipv4_http
TestMasterRequest-1/etc/promise/nginx_frontend_ipv4_https
TestMasterRequest-1/etc/promise/nginx_frontend_ipv6_http
TestMasterRequest-1/etc/promise/nginx_frontend_ipv6_https
TestMasterRequest-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestMasterRequest-1/etc/promise/promise-nginx-is-process-older-than-dependency-set
TestMasterRequest-1/etc/promise/re6st-connectivity
TestMasterRequest-1/etc/promise/trafficserver-cache-availability
TestMasterRequest-1/etc/promise/trafficserver-port-listening
\ No newline at end of file
...@@ -3,4 +3,22 @@ TestMasterRequest-0:certificate_authority-on-watch RUNNING ...@@ -3,4 +3,22 @@ TestMasterRequest-0:certificate_authority-on-watch RUNNING
TestMasterRequest-0:crond-{hash} RUNNING TestMasterRequest-0:crond-{hash} RUNNING
TestMasterRequest-0:monitor-httpd-{hash}-on-watch RUNNING TestMasterRequest-0:monitor-httpd-{hash}-on-watch RUNNING
TestMasterRequest-0:monitor-httpd-graceful EXITED TestMasterRequest-0:monitor-httpd-graceful EXITED
TestMasterRequest-1:6tunnel-11080-{hash}-on-watch RUNNING
TestMasterRequest-1:6tunnel-11443-{hash}-on-watch RUNNING
TestMasterRequest-1:6tunnel-12080-{hash}-on-watch RUNNING
TestMasterRequest-1:6tunnel-12443-{hash}-on-watch RUNNING
TestMasterRequest-1:6tunnel-26011-{hash}-on-watch RUNNING
TestMasterRequest-1:6tunnel-26012-{hash}-on-watch RUNNING
TestMasterRequest-1:bootstrap-monitor EXITED
TestMasterRequest-1:certificate_authority-{hash}-on-watch RUNNING
TestMasterRequest-1:crond-{hash} RUNNING
TestMasterRequest-1:crond-on-watch RUNNING
TestMasterRequest-1:frontend-caddy-safe-graceful EXITED
TestMasterRequest-1:frontend-nginx-safe-graceful EXITED
TestMasterRequest-1:frontend_caddy-{hash}-on-watch EXITED
TestMasterRequest-1:frontend_nginx-{hash}-on-watch RUNNING
TestMasterRequest-1:monitor-httpd-{hash}-on-watch EXITED
TestMasterRequest-1:monitor-httpd-graceful EXITED
TestMasterRequest-1:trafficserver-{hash}-on-watch RUNNING
TestMasterRequest-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestMasterRequestDomain-0/var/log/monitor-httpd-error.log TestMasterRequestDomain-0/var/log/monitor-httpd-error.log
TestMasterRequestDomain-1/var/log/nginx-access.log
TestMasterRequestDomain-1/var/log/nginx-error.log
TestMasterRequestDomain-1/var/log/trafficserver/manager.log
TestMasterRequestDomain-1/var/log/trafficserver/traffic.out
\ No newline at end of file
TestMasterRequestDomain-0/var/run/monitor-httpd.pid TestMasterRequestDomain-0/var/run/monitor-httpd.pid
TestMasterRequestDomain-0/var/run/monitor/monitor-bootstrap.pid TestMasterRequestDomain-0/var/run/monitor/monitor-bootstrap.pid
TestMasterRequestDomain-1/var/run/caddy_graceful_signature
TestMasterRequestDomain-1/var/run/caddy_validate_signature
TestMasterRequestDomain-1/var/run/caddy_validate_signature.status
TestMasterRequestDomain-1/var/run/monitor/monitor-bootstrap.pid
TestMasterRequestDomain-1/var/run/nginx.pid
TestMasterRequestDomain-1/var/run/nginx_graceful_signature
TestMasterRequestDomain-1/var/run/nginx_validate_signature
TestMasterRequestDomain-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -2,3 +2,7 @@ TestMasterRequestDomain-0/etc/plugin/__init__.py ...@@ -2,3 +2,7 @@ TestMasterRequestDomain-0/etc/plugin/__init__.py
TestMasterRequestDomain-0/etc/plugin/buildout-TestMasterRequestDomain-0-status.py TestMasterRequestDomain-0/etc/plugin/buildout-TestMasterRequestDomain-0-status.py
TestMasterRequestDomain-0/etc/plugin/check-free-disk-space.py TestMasterRequestDomain-0/etc/plugin/check-free-disk-space.py
TestMasterRequestDomain-0/etc/plugin/monitor-bootstrap-status.py TestMasterRequestDomain-0/etc/plugin/monitor-bootstrap-status.py
TestMasterRequestDomain-1/etc/plugin/__init__.py
TestMasterRequestDomain-1/etc/plugin/buildout-TestMasterRequestDomain-1-status.py
TestMasterRequestDomain-1/etc/plugin/check-free-disk-space.py
TestMasterRequestDomain-1/etc/plugin/monitor-bootstrap-status.py
\ No newline at end of file
TestMasterRequestDomain-0/etc/promise/monitor-http-frontend TestMasterRequestDomain-0/etc/promise/monitor-http-frontend
TestMasterRequestDomain-0/etc/promise/monitor-httpd-listening-on-tcp TestMasterRequestDomain-0/etc/promise/monitor-httpd-listening-on-tcp
TestMasterRequestDomain-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set TestMasterRequestDomain-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestMasterRequestDomain-1/etc/promise/caddy-frontend-is-running-actual-software-release
TestMasterRequestDomain-1/etc/promise/caddy_cached
TestMasterRequestDomain-1/etc/promise/caddy_frontend_ipv4_http
TestMasterRequestDomain-1/etc/promise/caddy_frontend_ipv4_https
TestMasterRequestDomain-1/etc/promise/caddy_frontend_ipv6_http
TestMasterRequestDomain-1/etc/promise/caddy_frontend_ipv6_https
TestMasterRequestDomain-1/etc/promise/caddy_ssl_cached
TestMasterRequestDomain-1/etc/promise/frontend-caddy-configuration-promise
TestMasterRequestDomain-1/etc/promise/monitor-http-frontend TestMasterRequestDomain-1/etc/promise/monitor-http-frontend
TestMasterRequestDomain-1/etc/promise/monitor-httpd-listening-on-tcp
TestMasterRequestDomain-1/etc/promise/nginx-configuration-promise
TestMasterRequestDomain-1/etc/promise/nginx_frontend_ipv4_http
TestMasterRequestDomain-1/etc/promise/nginx_frontend_ipv4_https
TestMasterRequestDomain-1/etc/promise/nginx_frontend_ipv6_http
TestMasterRequestDomain-1/etc/promise/nginx_frontend_ipv6_https
TestMasterRequestDomain-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestMasterRequestDomain-1/etc/promise/promise-nginx-is-process-older-than-dependency-set
TestMasterRequestDomain-1/etc/promise/re6st-connectivity
TestMasterRequestDomain-1/etc/promise/trafficserver-cache-availability
TestMasterRequestDomain-1/etc/promise/trafficserver-port-listening
\ No newline at end of file
...@@ -3,4 +3,22 @@ TestMasterRequestDomain-0:certificate_authority-on-watch RUNNING ...@@ -3,4 +3,22 @@ TestMasterRequestDomain-0:certificate_authority-on-watch RUNNING
TestMasterRequestDomain-0:crond-{hash} RUNNING TestMasterRequestDomain-0:crond-{hash} RUNNING
TestMasterRequestDomain-0:monitor-httpd-{hash}-on-watch RUNNING TestMasterRequestDomain-0:monitor-httpd-{hash}-on-watch RUNNING
TestMasterRequestDomain-0:monitor-httpd-graceful EXITED TestMasterRequestDomain-0:monitor-httpd-graceful EXITED
TestMasterRequestDomain-1:6tunnel-11080-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:6tunnel-11443-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:6tunnel-12080-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:6tunnel-12443-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:6tunnel-26011-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:6tunnel-26012-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:bootstrap-monitor EXITED
TestMasterRequestDomain-1:certificate_authority-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:crond-{hash} RUNNING
TestMasterRequestDomain-1:crond-on-watch RUNNING
TestMasterRequestDomain-1:frontend-caddy-safe-graceful EXITED
TestMasterRequestDomain-1:frontend-nginx-safe-graceful EXITED
TestMasterRequestDomain-1:frontend_caddy-{hash}-on-watch EXITED
TestMasterRequestDomain-1:frontend_nginx-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:monitor-httpd-{hash}-on-watch EXITED
TestMasterRequestDomain-1:monitor-httpd-graceful EXITED
TestMasterRequestDomain-1:trafficserver-{hash}-on-watch RUNNING
TestMasterRequestDomain-1:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
TestQuicEnabled-0/var/run/monitor-httpd.pid TestQuicEnabled-0/var/run/monitor-httpd.pid
TestQuicEnabled-0/var/run/monitor/monitor-bootstrap.pid TestQuicEnabled-0/var/run/monitor/monitor-bootstrap.pid
TestQuicEnabled-1/var/run/caddy_graceful_signature TestQuicEnabled-1/var/run/caddy_graceful_signature
TestQuicEnabled-1/var/run/caddy_graceful_signature.tmp
TestQuicEnabled-1/var/run/caddy_validate_signature TestQuicEnabled-1/var/run/caddy_validate_signature
TestQuicEnabled-1/var/run/caddy_validate_signature.status TestQuicEnabled-1/var/run/caddy_validate_signature.status
TestQuicEnabled-1/var/run/httpd.pid TestQuicEnabled-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestQuicEnabled-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestQuicEnabled-1/var/run/monitor-httpd.pid
TestQuicEnabled-1/var/run/monitor/monitor-bootstrap.pid TestQuicEnabled-1/var/run/monitor/monitor-bootstrap.pid
TestQuicEnabled-1/var/run/nginx.pid TestQuicEnabled-1/var/run/nginx.pid
TestQuicEnabled-1/var/run/nginx_graceful_signature TestQuicEnabled-1/var/run/nginx_graceful_signature
TestQuicEnabled-1/var/run/nginx_graceful_signature.tmp
TestQuicEnabled-1/var/run/nginx_validate_signature TestQuicEnabled-1/var/run/nginx_validate_signature
TestQuicEnabled-1/var/run/nginx_validate_signature.status TestQuicEnabled-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestQuicEnabled-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestQuicEnabled-0:certificate_authority-on-watch RUNNING
TestQuicEnabled-0:crond-{hash} RUNNING TestQuicEnabled-0:crond-{hash} RUNNING
TestQuicEnabled-0:monitor-httpd-{hash}-on-watch RUNNING TestQuicEnabled-0:monitor-httpd-{hash}-on-watch RUNNING
TestQuicEnabled-0:monitor-httpd-graceful EXITED TestQuicEnabled-0:monitor-httpd-graceful EXITED
TestQuicEnabled-1:6tunnel-11080-on-watch RUNNING TestQuicEnabled-1:6tunnel-11080-{hash}-on-watch RUNNING
TestQuicEnabled-1:6tunnel-11443-on-watch RUNNING TestQuicEnabled-1:6tunnel-11443-{hash}-on-watch RUNNING
TestQuicEnabled-1:6tunnel-12080-on-watch RUNNING TestQuicEnabled-1:6tunnel-12080-{hash}-on-watch RUNNING
TestQuicEnabled-1:6tunnel-12443-on-watch RUNNING TestQuicEnabled-1:6tunnel-12443-{hash}-on-watch RUNNING
TestQuicEnabled-1:6tunnel-26011-on-watch RUNNING TestQuicEnabled-1:6tunnel-26011-{hash}-on-watch RUNNING
TestQuicEnabled-1:6tunnel-26012-on-watch RUNNING TestQuicEnabled-1:6tunnel-26012-{hash}-on-watch RUNNING
TestQuicEnabled-1:bootstrap-monitor EXITED TestQuicEnabled-1:bootstrap-monitor EXITED
TestQuicEnabled-1:certificate_authority-{hash}-on-watch RUNNING TestQuicEnabled-1:certificate_authority-{hash}-on-watch RUNNING
TestQuicEnabled-1:crond-{hash} RUNNING TestQuicEnabled-1:crond-{hash} RUNNING
......
TestRe6stVerificationUrlDefaultSlave-0/var/run/monitor-httpd.pid TestRe6stVerificationUrlDefaultSlave-0/var/run/monitor-httpd.pid
TestRe6stVerificationUrlDefaultSlave-0/var/run/monitor/monitor-bootstrap.pid TestRe6stVerificationUrlDefaultSlave-0/var/run/monitor/monitor-bootstrap.pid
TestRe6stVerificationUrlDefaultSlave-1/var/run/caddy_graceful_signature TestRe6stVerificationUrlDefaultSlave-1/var/run/caddy_graceful_signature
TestRe6stVerificationUrlDefaultSlave-1/var/run/caddy_graceful_signature.tmp
TestRe6stVerificationUrlDefaultSlave-1/var/run/caddy_validate_signature TestRe6stVerificationUrlDefaultSlave-1/var/run/caddy_validate_signature
TestRe6stVerificationUrlDefaultSlave-1/var/run/caddy_validate_signature.status TestRe6stVerificationUrlDefaultSlave-1/var/run/caddy_validate_signature.status
TestRe6stVerificationUrlDefaultSlave-1/var/run/httpd.pid TestRe6stVerificationUrlDefaultSlave-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestRe6stVerificationUrlDefaultSlave-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestRe6stVerificationUrlDefaultSlave-1/var/run/monitor-httpd.pid
TestRe6stVerificationUrlDefaultSlave-1/var/run/monitor/monitor-bootstrap.pid TestRe6stVerificationUrlDefaultSlave-1/var/run/monitor/monitor-bootstrap.pid
TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx.pid TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx.pid
TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx_graceful_signature TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx_graceful_signature
TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx_graceful_signature.tmp
TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx_validate_signature TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx_validate_signature
TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx_validate_signature.status TestRe6stVerificationUrlDefaultSlave-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestRe6stVerificationUrlDefaultSlave-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestRe6stVerificationUrlDefaultSlave-0:certificate_authority-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-0:crond-{hash} RUNNING TestRe6stVerificationUrlDefaultSlave-0:crond-{hash} RUNNING
TestRe6stVerificationUrlDefaultSlave-0:monitor-httpd-{hash}-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-0:monitor-httpd-graceful EXITED TestRe6stVerificationUrlDefaultSlave-0:monitor-httpd-graceful EXITED
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-11080-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-11080-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-11443-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-11443-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-12080-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-12080-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-12443-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-12443-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-26011-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-26011-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:6tunnel-26012-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:6tunnel-26012-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:bootstrap-monitor EXITED TestRe6stVerificationUrlDefaultSlave-1:bootstrap-monitor EXITED
TestRe6stVerificationUrlDefaultSlave-1:certificate_authority-{hash}-on-watch RUNNING TestRe6stVerificationUrlDefaultSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestRe6stVerificationUrlDefaultSlave-1:crond-{hash} RUNNING TestRe6stVerificationUrlDefaultSlave-1:crond-{hash} RUNNING
......
TestRe6stVerificationUrlSlave-0/var/run/monitor-httpd.pid TestRe6stVerificationUrlSlave-0/var/run/monitor-httpd.pid
TestRe6stVerificationUrlSlave-0/var/run/monitor/monitor-bootstrap.pid TestRe6stVerificationUrlSlave-0/var/run/monitor/monitor-bootstrap.pid
TestRe6stVerificationUrlSlave-1/var/run/caddy_graceful_signature TestRe6stVerificationUrlSlave-1/var/run/caddy_graceful_signature
TestRe6stVerificationUrlSlave-1/var/run/caddy_graceful_signature.tmp
TestRe6stVerificationUrlSlave-1/var/run/caddy_validate_signature TestRe6stVerificationUrlSlave-1/var/run/caddy_validate_signature
TestRe6stVerificationUrlSlave-1/var/run/caddy_validate_signature.status TestRe6stVerificationUrlSlave-1/var/run/caddy_validate_signature.status
TestRe6stVerificationUrlSlave-1/var/run/httpd.pid TestRe6stVerificationUrlSlave-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestRe6stVerificationUrlSlave-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestRe6stVerificationUrlSlave-1/var/run/monitor-httpd.pid
TestRe6stVerificationUrlSlave-1/var/run/monitor/monitor-bootstrap.pid TestRe6stVerificationUrlSlave-1/var/run/monitor/monitor-bootstrap.pid
TestRe6stVerificationUrlSlave-1/var/run/nginx.pid TestRe6stVerificationUrlSlave-1/var/run/nginx.pid
TestRe6stVerificationUrlSlave-1/var/run/nginx_graceful_signature TestRe6stVerificationUrlSlave-1/var/run/nginx_graceful_signature
TestRe6stVerificationUrlSlave-1/var/run/nginx_graceful_signature.tmp
TestRe6stVerificationUrlSlave-1/var/run/nginx_validate_signature TestRe6stVerificationUrlSlave-1/var/run/nginx_validate_signature
TestRe6stVerificationUrlSlave-1/var/run/nginx_validate_signature.status TestRe6stVerificationUrlSlave-1/var/run/nginx_validate_signature.status
...@@ -3,12 +3,12 @@ TestRe6stVerificationUrlSlave-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestRe6stVerificationUrlSlave-0:certificate_authority-on-watch RUNNING
TestRe6stVerificationUrlSlave-0:crond-{hash} RUNNING TestRe6stVerificationUrlSlave-0:crond-{hash} RUNNING
TestRe6stVerificationUrlSlave-0:monitor-httpd-{hash}-on-watch RUNNING TestRe6stVerificationUrlSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-0:monitor-httpd-graceful EXITED TestRe6stVerificationUrlSlave-0:monitor-httpd-graceful EXITED
TestRe6stVerificationUrlSlave-1:6tunnel-11080-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-11080-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-11443-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-11443-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-12080-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-12080-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-12443-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-12443-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-26011-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-26011-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:6tunnel-26012-on-watch RUNNING TestRe6stVerificationUrlSlave-1:6tunnel-26012-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:bootstrap-monitor EXITED TestRe6stVerificationUrlSlave-1:bootstrap-monitor EXITED
TestRe6stVerificationUrlSlave-1:certificate_authority-{hash}-on-watch RUNNING TestRe6stVerificationUrlSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestRe6stVerificationUrlSlave-1:crond-{hash} RUNNING TestRe6stVerificationUrlSlave-1:crond-{hash} RUNNING
......
TestReplicateSlave-0/var/run/monitor-httpd.pid TestReplicateSlave-0/var/run/monitor-httpd.pid
TestReplicateSlave-0/var/run/monitor/monitor-bootstrap.pid TestReplicateSlave-0/var/run/monitor/monitor-bootstrap.pid
TestReplicateSlave-1/var/run/caddy_graceful_signature TestReplicateSlave-1/var/run/caddy_graceful_signature
TestReplicateSlave-1/var/run/caddy_graceful_signature.tmp
TestReplicateSlave-1/var/run/caddy_validate_signature TestReplicateSlave-1/var/run/caddy_validate_signature
TestReplicateSlave-1/var/run/caddy_validate_signature.status TestReplicateSlave-1/var/run/caddy_validate_signature.status
TestReplicateSlave-1/var/run/httpd.pid TestReplicateSlave-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestReplicateSlave-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestReplicateSlave-1/var/run/monitor-httpd.pid
TestReplicateSlave-1/var/run/monitor/monitor-bootstrap.pid TestReplicateSlave-1/var/run/monitor/monitor-bootstrap.pid
TestReplicateSlave-1/var/run/nginx.pid TestReplicateSlave-1/var/run/nginx.pid
TestReplicateSlave-1/var/run/nginx_graceful_signature TestReplicateSlave-1/var/run/nginx_graceful_signature
TestReplicateSlave-1/var/run/nginx_graceful_signature.tmp
TestReplicateSlave-1/var/run/nginx_validate_signature TestReplicateSlave-1/var/run/nginx_validate_signature
TestReplicateSlave-1/var/run/nginx_validate_signature.status TestReplicateSlave-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestReplicateSlave-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestReplicateSlave-0:certificate_authority-on-watch RUNNING
TestReplicateSlave-0:crond-{hash} RUNNING TestReplicateSlave-0:crond-{hash} RUNNING
TestReplicateSlave-0:monitor-httpd-{hash}-on-watch RUNNING TestReplicateSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestReplicateSlave-0:monitor-httpd-graceful EXITED TestReplicateSlave-0:monitor-httpd-graceful EXITED
TestReplicateSlave-1:6tunnel-11080-on-watch RUNNING TestReplicateSlave-1:6tunnel-11080-{hash}-on-watch RUNNING
TestReplicateSlave-1:6tunnel-11443-on-watch RUNNING TestReplicateSlave-1:6tunnel-11443-{hash}-on-watch RUNNING
TestReplicateSlave-1:6tunnel-12080-on-watch RUNNING TestReplicateSlave-1:6tunnel-12080-{hash}-on-watch RUNNING
TestReplicateSlave-1:6tunnel-12443-on-watch RUNNING TestReplicateSlave-1:6tunnel-12443-{hash}-on-watch RUNNING
TestReplicateSlave-1:6tunnel-26011-on-watch RUNNING TestReplicateSlave-1:6tunnel-26011-{hash}-on-watch RUNNING
TestReplicateSlave-1:6tunnel-26012-on-watch RUNNING TestReplicateSlave-1:6tunnel-26012-{hash}-on-watch RUNNING
TestReplicateSlave-1:bootstrap-monitor EXITED TestReplicateSlave-1:bootstrap-monitor EXITED
TestReplicateSlave-1:certificate_authority-{hash}-on-watch RUNNING TestReplicateSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestReplicateSlave-1:crond-{hash} RUNNING TestReplicateSlave-1:crond-{hash} RUNNING
...@@ -21,12 +21,12 @@ TestReplicateSlave-1:monitor-httpd-{hash}-on-watch RUNNING ...@@ -21,12 +21,12 @@ TestReplicateSlave-1:monitor-httpd-{hash}-on-watch RUNNING
TestReplicateSlave-1:monitor-httpd-graceful EXITED TestReplicateSlave-1:monitor-httpd-graceful EXITED
TestReplicateSlave-1:trafficserver-{hash}-on-watch RUNNING TestReplicateSlave-1:trafficserver-{hash}-on-watch RUNNING
TestReplicateSlave-1:trafficserver-reload EXITED TestReplicateSlave-1:trafficserver-reload EXITED
TestReplicateSlave-2:6tunnel-11080-on-watch STOPPED TestReplicateSlave-2:6tunnel-11080-{hash}-on-watch STOPPED
TestReplicateSlave-2:6tunnel-11443-on-watch STOPPED TestReplicateSlave-2:6tunnel-11443-{hash}-on-watch STOPPED
TestReplicateSlave-2:6tunnel-12080-on-watch STOPPED TestReplicateSlave-2:6tunnel-12080-{hash}-on-watch STOPPED
TestReplicateSlave-2:6tunnel-12443-on-watch STOPPED TestReplicateSlave-2:6tunnel-12443-{hash}-on-watch STOPPED
TestReplicateSlave-2:6tunnel-26011-on-watch STOPPED TestReplicateSlave-2:6tunnel-26011-{hash}-on-watch STOPPED
TestReplicateSlave-2:6tunnel-26012-on-watch STOPPED TestReplicateSlave-2:6tunnel-26012-{hash}-on-watch STOPPED
TestReplicateSlave-2:bootstrap-monitor STOPPED TestReplicateSlave-2:bootstrap-monitor STOPPED
TestReplicateSlave-2:certificate_authority-{hash}-on-watch STOPPED TestReplicateSlave-2:certificate_authority-{hash}-on-watch STOPPED
TestReplicateSlave-2:crond-{hash} STOPPED TestReplicateSlave-2:crond-{hash} STOPPED
......
TestSlave-0/var/run/monitor-httpd.pid TestSlave-0/var/run/monitor-httpd.pid
TestSlave-0/var/run/monitor/monitor-bootstrap.pid TestSlave-0/var/run/monitor/monitor-bootstrap.pid
TestSlave-1/var/run/caddy_graceful_signature TestSlave-1/var/run/caddy_graceful_signature
TestSlave-1/var/run/caddy_graceful_signature.tmp
TestSlave-1/var/run/caddy_validate_signature TestSlave-1/var/run/caddy_validate_signature
TestSlave-1/var/run/caddy_validate_signature.status TestSlave-1/var/run/caddy_validate_signature.status
TestSlave-1/var/run/httpd.pid TestSlave-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestSlave-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestSlave-1/var/run/monitor-httpd.pid
TestSlave-1/var/run/monitor/monitor-bootstrap.pid TestSlave-1/var/run/monitor/monitor-bootstrap.pid
TestSlave-1/var/run/nginx.pid TestSlave-1/var/run/nginx.pid
TestSlave-1/var/run/nginx_graceful_signature TestSlave-1/var/run/nginx_graceful_signature
TestSlave-1/var/run/nginx_graceful_signature.tmp
TestSlave-1/var/run/nginx_validate_signature TestSlave-1/var/run/nginx_validate_signature
TestSlave-1/var/run/nginx_validate_signature.status TestSlave-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestSlave-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestSlave-0:certificate_authority-on-watch RUNNING
TestSlave-0:crond-{hash} RUNNING TestSlave-0:crond-{hash} RUNNING
TestSlave-0:monitor-httpd-{hash}-on-watch RUNNING TestSlave-0:monitor-httpd-{hash}-on-watch RUNNING
TestSlave-0:monitor-httpd-graceful EXITED TestSlave-0:monitor-httpd-graceful EXITED
TestSlave-1:6tunnel-11080-on-watch RUNNING TestSlave-1:6tunnel-11080-{hash}-on-watch RUNNING
TestSlave-1:6tunnel-11443-on-watch RUNNING TestSlave-1:6tunnel-11443-{hash}-on-watch RUNNING
TestSlave-1:6tunnel-12080-on-watch RUNNING TestSlave-1:6tunnel-12080-{hash}-on-watch RUNNING
TestSlave-1:6tunnel-12443-on-watch RUNNING TestSlave-1:6tunnel-12443-{hash}-on-watch RUNNING
TestSlave-1:6tunnel-26011-on-watch RUNNING TestSlave-1:6tunnel-26011-{hash}-on-watch RUNNING
TestSlave-1:6tunnel-26012-on-watch RUNNING TestSlave-1:6tunnel-26012-{hash}-on-watch RUNNING
TestSlave-1:bootstrap-monitor EXITED TestSlave-1:bootstrap-monitor EXITED
TestSlave-1:certificate_authority-{hash}-on-watch RUNNING TestSlave-1:certificate_authority-{hash}-on-watch RUNNING
TestSlave-1:crond-{hash} RUNNING TestSlave-1:crond-{hash} RUNNING
......
TestSlaveBadParameters-0/var/run/monitor-httpd.pid TestSlaveBadParameters-0/var/run/monitor-httpd.pid
TestSlaveBadParameters-0/var/run/monitor/monitor-bootstrap.pid TestSlaveBadParameters-0/var/run/monitor/monitor-bootstrap.pid
TestSlaveBadParameters-1/var/run/caddy_graceful_signature TestSlaveBadParameters-1/var/run/caddy_graceful_signature
TestSlaveBadParameters-1/var/run/caddy_graceful_signature.tmp
TestSlaveBadParameters-1/var/run/caddy_validate_signature TestSlaveBadParameters-1/var/run/caddy_validate_signature
TestSlaveBadParameters-1/var/run/caddy_validate_signature.status TestSlaveBadParameters-1/var/run/caddy_validate_signature.status
TestSlaveBadParameters-1/var/run/httpd.pid TestSlaveBadParameters-1/var/run/httpd.pid
...@@ -9,6 +8,5 @@ TestSlaveBadParameters-1/var/run/monitor-httpd.pid ...@@ -9,6 +8,5 @@ TestSlaveBadParameters-1/var/run/monitor-httpd.pid
TestSlaveBadParameters-1/var/run/monitor/monitor-bootstrap.pid TestSlaveBadParameters-1/var/run/monitor/monitor-bootstrap.pid
TestSlaveBadParameters-1/var/run/nginx.pid TestSlaveBadParameters-1/var/run/nginx.pid
TestSlaveBadParameters-1/var/run/nginx_graceful_signature TestSlaveBadParameters-1/var/run/nginx_graceful_signature
TestSlaveBadParameters-1/var/run/nginx_graceful_signature.tmp
TestSlaveBadParameters-1/var/run/nginx_validate_signature TestSlaveBadParameters-1/var/run/nginx_validate_signature
TestSlaveBadParameters-1/var/run/nginx_validate_signature.status TestSlaveBadParameters-1/var/run/nginx_validate_signature.status
\ No newline at end of file
...@@ -3,12 +3,12 @@ TestSlaveBadParameters-0:certificate_authority-on-watch RUNNING ...@@ -3,12 +3,12 @@ TestSlaveBadParameters-0:certificate_authority-on-watch RUNNING
TestSlaveBadParameters-0:crond-{hash} RUNNING TestSlaveBadParameters-0:crond-{hash} RUNNING
TestSlaveBadParameters-0:monitor-httpd-{hash}-on-watch RUNNING TestSlaveBadParameters-0:monitor-httpd-{hash}-on-watch RUNNING
TestSlaveBadParameters-0:monitor-httpd-graceful EXITED TestSlaveBadParameters-0:monitor-httpd-graceful EXITED
TestSlaveBadParameters-1:6tunnel-11080-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-11080-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-11443-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-11443-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-12080-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-12080-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-12443-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-12443-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-26011-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-26011-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:6tunnel-26012-on-watch RUNNING TestSlaveBadParameters-1:6tunnel-26012-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:bootstrap-monitor EXITED TestSlaveBadParameters-1:bootstrap-monitor EXITED
TestSlaveBadParameters-1:certificate_authority-{hash}-on-watch RUNNING TestSlaveBadParameters-1:certificate_authority-{hash}-on-watch RUNNING
TestSlaveBadParameters-1:crond-{hash} RUNNING TestSlaveBadParameters-1:crond-{hash} RUNNING
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
...@@ -197,8 +197,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -197,8 +197,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
# Apache frontend test
This software release is simply to run the test suite from `../caddy-frontend/test/setup.py`,
but using apache-frontend software.
[buildout]
extends =
../caddy-frontend/software.cfg
[configuration]
test_software_release = ${:_profile_base_location_}/../../../apache-frontend/software.cfg
\ No newline at end of file
# Caddy frontend test
This software release is simply to run the test suite from `../caddy-frontend/test/setup.py`
# 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
# monitor test
This software release is simply to run the test suite from `../monitor/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-MONITOR-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 = 887a866f115c1e75b695379990e1709b
[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/monitor/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.monitor-setup]
<= setup-develop-egg
egg = slapos.test.monitor
setup = ${slapos-repository:location}/software/monitor/test/
[erp5.util-setup]
<= setup-develop-egg
egg = erp5.util[testnode]
setup = ${erp5.util-repository:location}
[eggs]
recipe = zc.recipe.egg
eggs =
${slapos.test.monitor-setup:egg}
${erp5.util-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
# XXX we need an unreleased ( 0.4.51 ) version of erp5.util runTestSuite
# later we can stop fetching it from git and just use egg
[erp5.util-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/erp5.git
revision = 69013fa0fb67501089c776ab5e75d7bbf2e0e3bc
[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.monitor =
erp5.util =
#erp5.util = 0.4.51
pyasn1 = 0.4.2
slapos.recipe.template = 4.3
pysftp = 0.2.9
# PlantUML test
This software release is simply to run the test suite from `../../plantuml/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-PLANTUML-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
# But avoid directories, they are not portable.
# 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 = 4ab7207a0440a904b4374add9b744312
[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/plantuml/test
# XXX slapos.cookbook:wrapper does not allow extending env, so we add some default $PATH entries
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
../../../../component/pillow/buildout.cfg
../../../../stack/slapos.cfg
./buildout.hash.cfg
parts =
slapos-cookbook
eggs
template
[setup-develop-egg]
recipe = zc.recipe.egg:develop
[slapos.test.plantuml-setup]
<= setup-develop-egg
egg = slapos.test.plantuml
setup = ${slapos-repository:location}/software/plantuml/test/
[eggs]
recipe = zc.recipe.egg
eggs =
${pillow-python:egg}
${slapos.test.plantuml-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
plantuml = 0.1.1
httplib2 = 0.11.3
image = 1.5.25
Pillow = 5.3.0
\ No newline at end of file
# 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 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 = af932783693bf8a7fec32d00a8e07ed2
[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/powerdns/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.powerdns-setup]
<= setup-develop-egg
egg = slapos.test.powerdns
setup = ${slapos-repository:location}/software/powerdns/test/
[eggs]
recipe = zc.recipe.egg
eggs =
${slapos.test.powerdns-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.powerdns =
erp5.util = 0.4.56
pyasn1 = 0.4.2
slapos.recipe.template = 4.3
pysftp = 0.2.9
# ProFTPd test
This software release is simply to run the test suite from `../proftpd/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-PROFTPD-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 = 20c5afac025e97c2937852f4d84f7cd3
[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/proftpd/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.proftpd-setup]
<= setup-develop-egg
egg = slapos.test.proftpd
setup = ${slapos-repository:location}/software/proftpd/test/
[erp5.util-setup]
<= setup-develop-egg
egg = erp5.util[testnode]
setup = ${erp5.util-repository:location}
[eggs]
recipe = zc.recipe.egg
eggs =
${slapos.test.proftpd-setup:egg}
${erp5.util-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
# XXX we need an unreleased ( 0.4.51 ) version of erp5.util runTestSuite
# later we can stop fetching it from git and just use egg
[erp5.util-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/erp5.git
revision = 69013fa0fb67501089c776ab5e75d7bbf2e0e3bc
[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.proftpd =
erp5.util =
#erp5.util = 0.4.51
pyasn1 = 0.4.2
slapos.recipe.template = 4.3
pysftp = 0.2.9
# Re6stnet test
This software release is simply to run the test suite from `../re6stnet/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-RE6STNET-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
# But avoid directories, they are not portable.
# 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 = 9c5ec49295ceae71df715bf1c90976e2
[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/re6stnet/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.re6stnet-setup]
<= setup-develop-egg
egg = slapos.test.re6stnet
setup = ${slapos-repository:location}/software/re6stnet/test/
[erp5.util-setup]
<= setup-develop-egg
egg = erp5.util[testnode]
setup = ${erp5.util-repository:location}
[eggs]
recipe = zc.recipe.egg
eggs =
${slapos.test.re6stnet-setup:egg}
${erp5.util-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
# XXX we need an unreleased ( 0.4.51 ) version of erp5.util runTestSuite
# later we can stop fetching it from git and just use egg
[erp5.util-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/erp5.git
revision = 69013fa0fb67501089c776ab5e75d7bbf2e0e3bc
[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.re6stnet =
erp5.util =
#erp5.util = 0.4.51
pyasn1 = 0.4.2
slapos.recipe.template = 4.3
# Selenium Server test
This software release is simply to run the test suite from `../../seleniumserver/test/setup.py`
Nexedi staff can see the results of this test from the test suite
`SLAPOS-SELENIUMSERVER-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 = 3019fd19f6623cca92741582b265a1da
[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/seleniumserver/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
../../../../component/pillow/buildout.cfg
../../../../component/python-pynacl/buildout.cfg
../../../../component/bcrypt/buildout.cfg
../../../../stack/slapos.cfg
./buildout.hash.cfg
parts =
slapos-cookbook
eggs
template
[setup-develop-egg]
recipe = zc.recipe.egg:develop
[slapos.test.seleniumserver-setup]
<= setup-develop-egg
egg = slapos.test.seleniumserver
setup = ${slapos-repository:location}/software/seleniumserver/test/
[eggs]
recipe = zc.recipe.egg
eggs =
${pillow-python:egg}
${python-pynacl:egg}
${bcrypt:egg}
${slapos.test.seleniumserver-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
image = 1.5.25
Pillow = 5.3.0
selenium = 3.14.1
urllib3 = 1.23
# Django 1.11 is python 2 compatible
Django = 1.11
paramiko = 2.4.2
pyasn1 = 0.4.2
PyNaCl = 1.3.0
bcrypt = 3.1.4
\ No newline at end of file
# 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 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 = 6fa1420739f58e722631564b08727060
[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/slaprunner/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.slaprunner-setup]
<= setup-develop-egg
egg = slapos.test.slaprunner
setup = ${slapos-repository:location}/software/slaprunner/test/
[erp5.util-setup]
<= setup-develop-egg
egg = erp5.util[testnode]
setup = ${erp5.util-repository:location}
[eggs]
recipe = zc.recipe.egg
eggs =
${slapos.test.slaprunner-setup:egg}
${erp5.util-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
# XXX we need an unreleased ( 0.4.51 ) version of erp5.util runTestSuite
# later we can stop fetching it from git and just use egg
[erp5.util-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/erp5.git
revision = 69013fa0fb67501089c776ab5e75d7bbf2e0e3bc
[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.slaprunner =
erp5.util =
#erp5.util = 0.4.51
pyasn1 = 0.4.2
slapos.recipe.template = 4.3
pysftp = 0.2.9
...@@ -40,7 +40,7 @@ import psutil ...@@ -40,7 +40,7 @@ import psutil
import utils import utils
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if os.environ.get('DEBUG'): if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
import unittest import unittest
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
...@@ -40,7 +40,7 @@ import psutil ...@@ -40,7 +40,7 @@ import psutil
import utils import utils
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if os.environ.get('DEBUG'): if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
import unittest import unittest
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
...@@ -33,11 +33,13 @@ template = {{ neo_admin }} ...@@ -33,11 +33,13 @@ template = {{ neo_admin }}
<= jinja2-template-base <= jinja2-template-base
template = {{ neo_master }} template = {{ neo_master }}
[neo-storage-mysql] [neo]
<= jinja2-template-base <= jinja2-template-base
template = {{ neo_storage_mysql }} template = {{ neo }}
extra-context = extra-context =
key master_cfg neo-master:rendered key master_cfg neo-master:rendered
key admin_cfg neo-admin:rendered key admin_cfg neo-admin:rendered
{%- if mariadb_location is defined %}
raw mariadb_location {{ mariadb_location }} raw mariadb_location {{ mariadb_location }}
raw template_neo_my_cnf {{ template_neo_my_cnf }} raw template_neo_my_cnf {{ template_neo_my_cnf }}
{%- endif %}
...@@ -84,6 +84,11 @@ ...@@ -84,6 +84,11 @@
"default": false, "default": false,
"type": "boolean" "type": "boolean"
}, },
"storage-type": {
"description": "Storage type. Defaults to MySQL if available, else SQLite.",
"enum": ["MySQL", "SQLite"],
"type": "string"
},
"mysql": { "mysql": {
"description": "Dictionary containing parameters for MySQL.", "description": "Dictionary containing parameters for MySQL.",
"default": {}, "default": {},
......
...@@ -2,6 +2,11 @@ ...@@ -2,6 +2,11 @@
{% set part_list = [] -%} {% set part_list = [] -%}
{% set init_list = [] -%} {% set init_list = [] -%}
{% set storage_type = slapparameter_dict.get('storage-type') or (
'MySQL' if mariadb_location is defined else 'SQLite') -%}
{% set mysql = storage_type == 'MySQL' -%}
{% if mysql -%}
[mysqld] [mysqld]
recipe = slapos.cookbook:generic.mysql.wrap_mysqld recipe = slapos.cookbook:generic.mysql.wrap_mysqld
output = ${directory:etc_run}/mariadb output = ${directory:etc_run}/mariadb
...@@ -34,6 +39,8 @@ command-line = ${mysqld:mysql-base-directory}/bin/${:command} --defaults-file=${ ...@@ -34,6 +39,8 @@ command-line = ${mysqld:mysql-base-directory}/bin/${:command} --defaults-file=${
wrapper-path = ${directory:bin}/${:command} wrapper-path = ${directory:bin}/${:command}
command = mysql command = mysql
{% endif -%}
[{{ section('binary-neolog') }}] [{{ section('binary-neolog') }}]
recipe = slapos.cookbook:symbolic.link recipe = slapos.cookbook:symbolic.link
target-directory = ${directory:bin} target-directory = ${directory:bin}
...@@ -95,7 +102,7 @@ ip = ${publish:ip} ...@@ -95,7 +102,7 @@ ip = ${publish:ip}
ssl = {{ dumps(bool(slapparameter_dict['ssl'])) }} ssl = {{ dumps(bool(slapparameter_dict['ssl'])) }}
cluster = {{ dumps(slapparameter_dict['cluster']) }} cluster = {{ dumps(slapparameter_dict['cluster']) }}
masters = ${publish:masters} masters = ${publish:masters}
database-adapter = MySQL database-adapter = {{ storage_type }}
wait-database = -1 wait-database = -1
engine = {{ slapparameter_dict.get('engine', '') }} engine = {{ slapparameter_dict.get('engine', '') }}
dedup = {{ dumps(bool(slapparameter_dict.get('data-deduplication'))) }} dedup = {{ dumps(bool(slapparameter_dict.get('data-deduplication'))) }}
...@@ -107,8 +114,15 @@ disable-drop-partitions = {{ dumps(bool(slapparameter_dict.get('disable-drop-par ...@@ -107,8 +114,15 @@ disable-drop-partitions = {{ dumps(bool(slapparameter_dict.get('disable-drop-par
< = neo-storage < = neo-storage
wrapper = ${directory:etc_run}/{{ 'neostorage-' ~ i }} wrapper = ${directory:etc_run}/{{ 'neostorage-' ~ i }}
logfile = ${directory:log}/{{ 'neostorage-' ~ i }}.log logfile = ${directory:log}/{{ 'neostorage-' ~ i }}.log
{% do init_list.append('CREATE DATABASE IF NOT EXISTS neo' ~ i ~ ';') -%} {%- if mysql %}
{%- do init_list.append('CREATE DATABASE IF NOT EXISTS neo' ~ i ~ ';') %}
database-parameters = root@neo{{ i }}${my-cnf-parameters:socket} database-parameters = root@neo{{ i }}${my-cnf-parameters:socket}
{%- else %}
database-parameters = ${directory:db-{{i}}}/db.sqlite
[directory]
db-{{i}} = ${buildout:directory}/srv/{{ storage_id }}
{%- endif %}
[{{ section('logrotate-storage-' ~ i) }}] [{{ section('logrotate-storage-' ~ i) }}]
< = logrotate-entry-base < = logrotate-entry-base
...@@ -117,12 +131,6 @@ log = {{ '${' + storage_id + ':logfile}' }} ...@@ -117,12 +131,6 @@ log = {{ '${' + storage_id + ':logfile}' }}
post = {{ bin_directory }}/slapos-kill -s RTMIN+1 -- {{ bin_directory }}/neostorage -l ${:log} post = {{ bin_directory }}/slapos-kill -s RTMIN+1 -- {{ bin_directory }}/neostorage -l ${:log}
{% endfor -%} {% endfor -%}
[init-script]
recipe = slapos.recipe.template:jinja2
# XXX: is there a better location ?
rendered = ${directory:etc}/mariadb_initial_setup.sql
template = inline:
{{ init_list | join('\n\t') }}
[directory] [directory]
recipe = slapos.cookbook:mkdirectory recipe = slapos.cookbook:mkdirectory
...@@ -132,11 +140,19 @@ etc = ${buildout:directory}/etc ...@@ -132,11 +140,19 @@ etc = ${buildout:directory}/etc
var = ${buildout:directory}/var var = ${buildout:directory}/var
etc_run = ${:etc}/run etc_run = ${:etc}/run
var_run = ${:var}/run var_run = ${:var}/run
srv_mariadb = ${buildout:directory}/srv/mariadb
log = ${buildout:directory}/var/log log = ${buildout:directory}/var/log
tmp = ${buildout:directory}/tmp tmp = ${buildout:directory}/tmp
{% if mysql -%}
srv_mariadb = ${buildout:directory}/srv/mariadb
[init-script]
recipe = slapos.recipe.template:jinja2
# XXX: is there a better location ?
rendered = ${directory:etc}/mariadb_initial_setup.sql
template = inline:
{{ init_list | join('\n\t') }}
[logrotate-mysql] [{{ section('logrotate-mysql') }}]
< = logrotate-entry-base < = logrotate-entry-base
name = mariadb name = mariadb
log = ${my-cnf-parameters:error-log} ${my-cnf-parameters:slow-query-log} log = ${my-cnf-parameters:error-log} ${my-cnf-parameters:slow-query-log}
...@@ -154,7 +170,9 @@ context = ...@@ -154,7 +170,9 @@ context =
section my_cnf_parameters my-cnf-parameters section my_cnf_parameters my-cnf-parameters
raw bin_directory {{ bin_directory }} raw bin_directory {{ bin_directory }}
raw prepend_path ${mysqld:mysql-base-directory}/bin raw prepend_path ${mysqld:mysql-base-directory}/bin
{% endif -%} {%- endif %}
{%- endif %}
[buildout] [buildout]
extends = extends =
...@@ -167,4 +185,3 @@ extends = ...@@ -167,4 +185,3 @@ extends =
{%- endif %} {%- endif %}
parts += parts +=
{{ '\n '.join(part_list) }} {{ '\n '.join(part_list) }}
logrotate-mysql
...@@ -12,14 +12,16 @@ extra-context = ...@@ -12,14 +12,16 @@ extra-context =
import-list = import-list =
rawfile root_common {{ root_common }} rawfile root_common {{ root_common }}
[neo-storage-mysql] {% if mariadb_location is defined -%}
[neo]
extra-context += extra-context +=
raw runTestSuite_in {{ runTestSuite_in }} raw runTestSuite_in {{ runTestSuite_in }}
{% endif -%}
[switch-softwaretype] [switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype recipe = slapos.cookbook:switch-softwaretype
override = {{ dumps(override_switch_softwaretype |default) }} override = {{ dumps(override_switch_softwaretype |default) }}
default = neo-cluster:rendered default = neo-cluster:rendered
# BBB # BBB
RootSoftwareInstance = ${:default} RootSoftwareInstance = ${:default}
neo = neo-storage-mysql:rendered neo = neo:rendered
...@@ -46,10 +46,10 @@ environment = neoppod-setup-env ...@@ -46,10 +46,10 @@ environment = neoppod-setup-env
[neoppod] [neoppod]
recipe = zc.recipe.egg recipe = zc.recipe.egg
eggs = neoppod[admin, ctl, master, storage-mysqldb] eggs = neoppod[admin, ctl, master]
${cython-zstd:egg} ${cython-zstd:egg}
${msgpack-python:egg} ${msgpack-python:egg}
${python-mysqlclient:egg} ${:adapter-egg}
psutil psutil
BTrees BTrees
ZODB ZODB
...@@ -57,6 +57,7 @@ eggs = neoppod[admin, ctl, master, storage-mysqldb] ...@@ -57,6 +57,7 @@ eggs = neoppod[admin, ctl, master, storage-mysqldb]
zodbtools zodbtools
coverage coverage
setproctitle setproctitle
adapter-egg = ${python-mysqlclient:egg}
patch-binary = ${patch:location}/bin/patch patch-binary = ${patch:location}/bin/patch
ZEO-patch-options = -p1 ZEO-patch-options = -p1
ZEO-patches = ZEO-patches =
...@@ -86,16 +87,18 @@ mode = 644 ...@@ -86,16 +87,18 @@ mode = 644
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/${:_buildout_section_name_}.cfg.in template = ${:_profile_base_location_}/${:_buildout_section_name_}.cfg.in
rendered = ${buildout:directory}/${:_buildout_section_name_}.cfg rendered = ${buildout:directory}/${:_buildout_section_name_}.cfg
md5sum = e8f5a83580e9791a32c66f5935cb6840 md5sum = b867ba222a436807954f732642fb116d
context = context =
key bin_directory buildout:bin-directory key bin_directory buildout:bin-directory
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory key eggs_directory buildout:eggs-directory
key mariadb_location mariadb:location
key neo_admin instance-neo-admin:target key neo_admin instance-neo-admin:target
key neo_master instance-neo-master:target key neo_master instance-neo-master:target
key neo_storage_mysql instance-neo-storage-mysql:target key neo instance-neo:target
key template_logrotate_base template-logrotate-base:rendered key template_logrotate_base template-logrotate-base:rendered
${:adapter-context}
adapter-context =
key mariadb_location mariadb:location
key template_neo_my_cnf template-neo-my-cnf:target key template_neo_my_cnf template-neo-my-cnf:target
[root-common] [root-common]
...@@ -110,9 +113,9 @@ md5sum = 4d1ae570b4458e7725454857aabb37f6 ...@@ -110,9 +113,9 @@ md5sum = 4d1ae570b4458e7725454857aabb37f6
<= download-base-neo <= download-base-neo
md5sum = 1fee10f02c2fa2a581e21878ca0fd704 md5sum = 1fee10f02c2fa2a581e21878ca0fd704
[instance-neo-storage-mysql] [instance-neo]
<= download-base-neo <= download-base-neo
md5sum = 16024af1cde9c0fcc7e8e05ec0854b30 md5sum = a9e5cad9cdb5fd3f1ae7b1d534f967ae
[template-neo-my-cnf] [template-neo-my-cnf]
<= download-base-neo <= download-base-neo
......
...@@ -10,7 +10,7 @@ parts += ...@@ -10,7 +10,7 @@ parts +=
[template] [template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/instance.cfg.in template = ${:_profile_base_location_}/instance.cfg.in
md5sum = aaf5da66d45d4c08cadb0cd1c5342c54 md5sum = 83dc9faca482b2ddbd3d5fa968af7c33
# XXX: "template.cfg" is hardcoded in instanciation recipe # XXX: "template.cfg" is hardcoded in instanciation recipe
rendered = ${buildout:directory}/template.cfg rendered = ${buildout:directory}/template.cfg
context = context =
...@@ -18,6 +18,7 @@ context = ...@@ -18,6 +18,7 @@ context =
key instance_common_cfg instance-common:rendered key instance_common_cfg instance-common:rendered
key root_common root-common:target key root_common root-common:target
key runTestSuite_in runTestSuite.in:target key runTestSuite_in runTestSuite.in:target
${instance-common:adapter-context}
[cluster] [cluster]
<= download-base-neo <= download-base-neo
......
# To be extended after software-common.cfg if only SQLite backend is wanted.
[neoppod]
adapter-egg =
[instance-common]
adapter-context =
...@@ -38,7 +38,7 @@ import plantuml ...@@ -38,7 +38,7 @@ import plantuml
import utils import utils
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if os.environ.get('DEBUG'): if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
import unittest import unittest
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
...@@ -40,7 +40,7 @@ import psutil ...@@ -40,7 +40,7 @@ import psutil
import utils import utils
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if os.environ.get('DEBUG'): if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
import unittest import unittest
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
...@@ -41,7 +41,7 @@ import utils ...@@ -41,7 +41,7 @@ import utils
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if os.environ.get('DEBUG'): if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
import unittest import unittest
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
...@@ -39,12 +39,12 @@ import psutil ...@@ -39,12 +39,12 @@ import psutil
import utils import utils
LOCAL_IPV4 = os.environ['LOCAL_IPV4'] SLAPOS_TEST_IPV4 = os.environ['SLAPOS_TEST_IPV4']
GLOBAL_IPV6 = os.environ['GLOBAL_IPV6'] SLAPOS_TEST_IPV6 = os.environ['SLAPOS_TEST_IPV6']
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if os.environ.get('DEBUG'): if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
import unittest import unittest
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
...@@ -46,7 +46,7 @@ from selenium.webdriver.support.ui import WebDriverWait ...@@ -46,7 +46,7 @@ from selenium.webdriver.support.ui import WebDriverWait
from utils import SlapOSInstanceTestCase, findFreeTCPPort from utils import SlapOSInstanceTestCase, findFreeTCPPort
debug_mode = os.environ.get('DEBUG') debug_mode = os.environ.get('SLAPOS_TEST_DEBUG')
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if debug_mode: if debug_mode:
import logging import logging
...@@ -103,7 +103,7 @@ class WebServerMixin(object): ...@@ -103,7 +103,7 @@ class WebServerMixin(object):
''' % (form['q'].value, file_data)) ''' % (form['q'].value, file_data))
super(WebServerMixin, self).setUp() super(WebServerMixin, self).setUp()
ip = os.environ.get('LOCAL_IPV4', '127.0.1.1') ip = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
port = findFreeTCPPort(ip) port = findFreeTCPPort(ip)
server = HTTPServer((ip, port), TestHandler) server = HTTPServer((ip, port), TestHandler)
self.server_process = multiprocessing.Process(target=server.serve_forever) self.server_process = multiprocessing.Process(target=server.serve_forever)
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
SlapOS Software Release tests
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = d8d9e9a4bd00ccba2c448bb9d5d6aeae md5sum = b98a93c66e1875bbbfc7e08ee0efc502
...@@ -22,23 +22,24 @@ git-executable = ${git:location}/bin/git ...@@ -22,23 +22,24 @@ git-executable = ${git:location}/bin/git
<= download-source <= download-source
repository = ${slapos-repository:location} repository = ${slapos-repository:location}
[create-directory] [directory]
recipe = slapos.cookbook:mkdirectory recipe = slapos.cookbook:mkdirectory
bin = $${buildout:directory}/bin bin = $${buildout:directory}/bin
working-dir = $${buildout:directory}/tmp working-dir = $${buildout:directory}/tmp
[test-list]
path_list = ${slapos.test.caddy-frontend-setup:setup},${slapos.test.erp5-setup:setup},${slapos.test.kvm-setup:setup},${slapos.test.monitor-setup:setup},${slapos.test.plantuml-setup:setup},${slapos.test.powerdns-setup:setup},${slapos.test.proftpd-setup:setup},${slapos.test.re6stnet-setup:setup},${slapos.test.seleniumserver-setup:setup},${slapos.test.slaprunner-setup:setup}
[slapos-test-runner] [slapos-test-runner]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
wrapper-path = $${create-directory:bin}/runTestSuite wrapper-path = $${directory:bin}/runTestSuite
command-line = command-line =
${buildout:bin-directory}/runTestSuite ${buildout:bin-directory}/runTestSuite
--python_interpreter=${buildout:bin-directory}/${eggs:interpreter} --python_interpreter=${buildout:bin-directory}/${eggs:interpreter}
--source_code_path_list=$${slapos:location}/software/caddy-frontend/test --source_code_path_list=$${test-list:path_list}
# XXX slapos.cookbook:wrapper does not allow extending env, so we add some default $PATH entries ( not sure they are needed )
environment = environment =
PATH=${quic_client-bin:location}:${curl:location}/bin/:/usr/bin/:/bin PATH=${quic_client-bin:location}:${curl:location}/bin/:/usr/bin/:/bin
LOCAL_IPV4=$${slap-configuration:ipv4-random} SLAPOS_TEST_IPV4=$${slap-configuration:ipv4-random}
GLOBAL_IPV6=$${slap-configuration:ipv6-random} SLAPOS_TEST_IPV6=$${slap-configuration:ipv6-random}
SLAPOS_TEST_WORKING_DIR=$${create-directory:working-dir} SLAPOS_TEST_WORKING_DIR=$${directory:working-dir}
TEST_SR=${template:test_software_release}
[buildout] [buildout]
extends = extends =
../../../../component/git/buildout.cfg ../../component/bcrypt/buildout.cfg
../../../../component/curl/buildout.cfg ../../component/curl/buildout.cfg
../../../../component/python-cryptography/buildout.cfg ../../component/git/buildout.cfg
../../../../stack/slapos.cfg ../../component/pillow/buildout.cfg
../../../../component/quic_client-bin/buildout.cfg ../../component/python-cryptography/buildout.cfg
../../component/python-pynacl/buildout.cfg
../../component/quic_client-bin/buildout.cfg
../../stack/slapos.cfg
./buildout.hash.cfg ./buildout.hash.cfg
parts = parts =
...@@ -21,6 +26,51 @@ recipe = zc.recipe.egg:develop ...@@ -21,6 +26,51 @@ recipe = zc.recipe.egg:develop
egg = slapos.test.caddy-frontend egg = slapos.test.caddy-frontend
setup = ${slapos-repository:location}/software/caddy-frontend/test/ setup = ${slapos-repository:location}/software/caddy-frontend/test/
[slapos.test.erp5-setup]
<= setup-develop-egg
egg = slapos.test.erp5
setup = ${slapos-repository:location}/software/erp5/test/
[slapos.test.kvm-setup]
<= setup-develop-egg
egg = slapos.test.kvm
setup = ${slapos-repository:location}/software/kvm/test/
[slapos.test.monitor-setup]
<= setup-develop-egg
egg = slapos.test.monitor
setup = ${slapos-repository:location}/software/monitor/test/
[slapos.test.plantuml-setup]
<= setup-develop-egg
egg = slapos.test.plantuml
setup = ${slapos-repository:location}/software/plantuml/test/
[slapos.test.powerdns-setup]
<= setup-develop-egg
egg = slapos.test.powerdns
setup = ${slapos-repository:location}/software/powerdns/test/
[slapos.test.proftpd-setup]
<= setup-develop-egg
egg = slapos.test.proftpd
setup = ${slapos-repository:location}/software/proftpd/test/
[slapos.test.re6stnet-setup]
<= setup-develop-egg
egg = slapos.test.re6stnet
setup = ${slapos-repository:location}/software/re6stnet/test/
[slapos.test.seleniumserver-setup]
<= setup-develop-egg
egg = slapos.test.seleniumserver
setup = ${slapos-repository:location}/software/seleniumserver/test/
[slapos.test.slaprunner-setup]
<= setup-develop-egg
egg = slapos.test.slaprunner
setup = ${slapos-repository:location}/software/slaprunner/test/
[erp5.util-setup] [erp5.util-setup]
<= setup-develop-egg <= setup-develop-egg
egg = erp5.util[testnode] egg = erp5.util[testnode]
...@@ -30,10 +80,23 @@ setup = ${erp5.util-repository:location} ...@@ -30,10 +80,23 @@ setup = ${erp5.util-repository:location}
[eggs] [eggs]
recipe = zc.recipe.egg recipe = zc.recipe.egg
eggs = eggs =
${slapos.test.caddy-frontend-setup:egg} ${pillow-python:egg}
${python-pynacl:egg}
${erp5.util-setup:egg} ${erp5.util-setup:egg}
${python-cryptography:egg} ${python-cryptography:egg}
${bcrypt:egg}
slapos.core slapos.core
${slapos.test.caddy-frontend-setup:egg}
${slapos.test.erp5-setup:egg}
${slapos.test.kvm-setup:egg}
${slapos.test.monitor-setup:egg}
${slapos.test.plantuml-setup:egg}
${slapos.test.powerdns-setup:egg}
${slapos.test.proftpd-setup:egg}
${slapos.test.re6stnet-setup:egg}
${slapos.test.seleniumserver-setup:egg}
${slapos.test.slaprunner-setup:egg}
entry-points = entry-points =
runTestSuite=erp5.util.testsuite:runTestSuite runTestSuite=erp5.util.testsuite:runTestSuite
scripts = scripts =
...@@ -52,29 +115,41 @@ forbid-download-cache = true ...@@ -52,29 +115,41 @@ forbid-download-cache = true
repository = https://lab.nexedi.com/nexedi/slapos.git repository = https://lab.nexedi.com/nexedi/slapos.git
branch = master branch = master
# XXX we need an unreleased ( 0.4.51 ) version of erp5.util runTestSuite # XXX we need an unreleased version of erp5.util for better test uniqe naming
# later we can stop fetching it from git and just use egg # later we can stop fetching it from git and just use egg
[erp5.util-repository] [erp5.util-repository]
<= git-clone-repository <= git-clone-repository
repository = https://lab.nexedi.com/nexedi/erp5.git repository = https://lab.nexedi.com/nexedi/erp5.git
revision = 55d7381c54a2e90aff2c4a88943883c35ea111de revision = aa516c7eb88308127949675bcc77d651630ebf5e
[configuration]
test_software_release = ${:_profile_base_location_}/../../../caddy-frontend/software.cfg
[template] [template]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename} url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg output = ${buildout:directory}/template.cfg
mode = 640 mode = 640
test_software_release = ${configuration:test_software_release}
[versions] [versions]
# clear the version of tested eggs, to make sure we installed the developped ones # clear the version of tested eggs, to make sure we installed the developped ones
slapos.test.caddy-frontend =
erp5.util = erp5.util =
slapos.recipe.template = 4.3
forcediphttpsadapter = 1.0.1
# slapos.test.caddy-frontend==0.0.1.dev0 # Various needed versions
Pillow = 5.3.0
PyNaCl = 1.3.0
bcrypt = 3.1.4
forcediphttpsadapter = 1.0.1
httplib2 = 0.11.3
image = 1.5.25
paramiko = 2.4.2
plantuml = 0.1.1
pyasn1 = 0.4.4
pysftp = 0.2.9
requests-toolbelt = 0.8.0 requests-toolbelt = 0.8.0
selenium = 3.141.0
slapos.recipe.template = 4.3
# Django 1.11 is python 2 compatible
Django = 1.11
# Required by:
# selenium==3.141.0
urllib3 = 1.24.1
...@@ -15,5 +15,5 @@ ...@@ -15,5 +15,5 @@
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = 2af05c83ea9525ac3c6816ee0365876c md5sum = c7becd2a66b3305406f965b969907d52
...@@ -80,11 +80,14 @@ command-line = ...@@ -80,11 +80,14 @@ command-line =
# needs ping, which is a setuid binary that cannot be installed via slapos # needs ping, which is a setuid binary that cannot be installed via slapos
# way of building software without root access, so we keep "standard" # way of building software without root access, so we keep "standard"
# /usr/bin and /bin in $PATH # /usr/bin and /bin in $PATH
# * LOCAL_IPV4 is needed for some slapos.core tests # * SLAPOS_TEST_environment is safe to be used by tests, but there is no
# guarantee about free ports on IPV4 and IPV6
# * LOCAL_IPV4 is backward compatible, to be migrated, SLAPOS_TEST_IPV4
environment = environment =
PATH=${coreutils:location}/bin:${curl:location}/bin:${openssl:location}/bin:${git:location}/bin:${libxslt:location}/bin:${socat:location}/bin:/usr/bin/:/bin/ PATH=${coreutils:location}/bin:${curl:location}/bin:${openssl:location}/bin:${git:location}/bin:${libxslt:location}/bin:${socat:location}/bin:${lmsensors:location}/bin:/usr/bin/:/bin/
LOCAL_IPV4=$${slap-configuration:ipv4-random} LOCAL_IPV4=$${slap-configuration:ipv4-random}
LOCAL_IPV6=$${slap-configuration:ipv6-random} SLAPOS_TEST_IPV4=$${slap-configuration:ipv4-random}
SLAPOS_TEST_IPV6=$${slap-configuration:ipv6-random}
[phantomjs-wrapper] [phantomjs-wrapper]
......
...@@ -11,6 +11,7 @@ extends = ...@@ -11,6 +11,7 @@ extends =
../../component/pycurl/buildout.cfg ../../component/pycurl/buildout.cfg
../../component/coreutils/buildout.cfg ../../component/coreutils/buildout.cfg
../../component/socat/buildout.cfg ../../component/socat/buildout.cfg
../../component/lmsensors/buildout.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
./buildout.hash.cfg ./buildout.hash.cfg
......
...@@ -40,7 +40,7 @@ import psutil ...@@ -40,7 +40,7 @@ import psutil
import utils import utils
# for development: debugging logs and install Ctrl+C handler # for development: debugging logs and install Ctrl+C handler
if os.environ.get('DEBUG'): if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
import unittest import unittest
......
...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase): ...@@ -187,8 +187,8 @@ class SlapOSInstanceTestCase(unittest.TestCase):
'slapos_binary': 'slapos', 'slapos_binary': 'slapos',
} }
# Some tests are expecting that local IP is not set to 127.0.0.1 # Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('LOCAL_IPV4', '127.0.1.1') ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['GLOBAL_IPV6'] ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address cls.config['ipv6_address'] = ipv6_address
......
...@@ -18,8 +18,4 @@ eggs += ${wendelin.core-dev:egg} ...@@ -18,8 +18,4 @@ eggs += ${wendelin.core-dev:egg}
# to installing non-dev egg # to installing non-dev egg
[versions] [versions]
wendelin.core = wendelin.core =
scikit-learn = scikit-learn = 0.20
# install scikit-learn git clone
[scikit-learn]
depends = ${scikit-learn-develop:recipe}
...@@ -74,7 +74,7 @@ md5sum = d41d8cd98f00b204e9800998ecf8427e ...@@ -74,7 +74,7 @@ md5sum = d41d8cd98f00b204e9800998ecf8427e
[template-erp5] [template-erp5]
filename = instance-erp5.cfg.in filename = instance-erp5.cfg.in
md5sum = f723acac5c081c7f9e5eff268d05cc54 md5sum = eefce8adf37430b63559299699732b31
[template-zeo] [template-zeo]
filename = instance-zeo.cfg.in filename = instance-zeo.cfg.in
......
...@@ -118,7 +118,7 @@ return = ...@@ -118,7 +118,7 @@ return =
{%- if test_runner_enabled %} {%- if test_runner_enabled %}
test-runner-address-list test-runner-address-list
{% endif %} {% endif %}
{% set bt5_default_list = 'erp5_full_text_myisam_catalog erp5_configurator_standard erp5_configurator_maxma_demo erp5_configurator_run_my_doc' -%} {% set bt5_default_list = 'erp5_full_text_mroonga_catalog erp5_configurator_standard erp5_configurator_maxma_demo erp5_configurator_run_my_doc' -%}
{% if has_jupyter -%} {% if has_jupyter -%}
{% set bt5_default_list = bt5_default_list + ' erp5_data_notebook' -%} {% set bt5_default_list = bt5_default_list + ' erp5_data_notebook' -%}
{% endif -%} {% endif -%}
......
...@@ -142,8 +142,9 @@ slapos.libnetworkcache = 0.16 ...@@ -142,8 +142,9 @@ slapos.libnetworkcache = 0.16
slapos.rebootstrap = 4.1 slapos.rebootstrap = 4.1
slapos.recipe.build = 0.40 slapos.recipe.build = 0.40
slapos.recipe.cmmi = 0.10 slapos.recipe.cmmi = 0.10
slapos.toolbox = 0.83 slapos.toolbox = 0.84
stevedore = 1.21.0 stevedore = 1.21.0
subprocess32 = 3.5.3
unicodecsv = 0.14.1 unicodecsv = 0.14.1
xml-marshaller = 0.9.7 xml-marshaller = 0.9.7
paramiko = 2.1.3 paramiko = 2.1.3
...@@ -249,6 +250,10 @@ rpdb = 0.1.5 ...@@ -249,6 +250,10 @@ rpdb = 0.1.5
# slapos.core==1.4.15 # slapos.core==1.4.15
supervisor = 3.3.3 supervisor = 3.3.3
# Required by:
# slapos.toolbox==0.84
tzlocal = 1.5.1
# Required by: # Required by:
# slapos.core==1.4.15 # slapos.core==1.4.15
uritemplate = 3.0.0 uritemplate = 3.0.0
......
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