Commit 925aa698 authored by Rafael Monnerat's avatar Rafael Monnerat

Update Release Candidate

parents 0f52326c 5bd895ab
[buildout]
extends = ../xz-utils/buildout.cfg
parts = backports.lzma
[backports.lzma]
recipe = zc.recipe.egg:custom
egg = backports.lzma
rpath = ${xz-utils:location}/lib
library-dirs = ${:rpath}
include-dirs = ${xz-utils:location}/include
...@@ -22,15 +22,15 @@ md5sum = c801b7f9f11f0965677c22e6bbe9281b ...@@ -22,15 +22,15 @@ md5sum = c801b7f9f11f0965677c22e6bbe9281b
[template-apache-frontend] [template-apache-frontend]
filename = instance-apache-frontend.cfg.in filename = instance-apache-frontend.cfg.in
md5sum = 6abe3aae72a83ef90e484d00cc70490d md5sum = d2dda14597c061960f0b9d38ec0d8313
[template-apache-replicate] [template-apache-replicate]
filename = instance-apache-replicate.cfg.in filename = instance-apache-replicate.cfg.in
md5sum = d62aefe002ec13875924e4c219914795 md5sum = ef06c04a5aa33b103dc1d25d0dfe8217
[template-slave-list] [template-slave-list]
filename = templates/apache-custom-slave-list.cfg.in filename = templates/apache-custom-slave-list.cfg.in
md5sum = def9d8430ac19a40f3b457830f1feefc md5sum = a473ded24aed999abed3d79a08bb09a6
[template-slave-configuration] [template-slave-configuration]
filename = templates/custom-virtualhost.conf.in filename = templates/custom-virtualhost.conf.in
...@@ -82,7 +82,7 @@ md5sum = baf7b89cc9ab5506100b0c900808c1ea ...@@ -82,7 +82,7 @@ md5sum = baf7b89cc9ab5506100b0c900808c1ea
[template-trafficserver-logging-config] [template-trafficserver-logging-config]
filename = templates/trafficserver/logging.config.jinja2 filename = templates/trafficserver/logging.config.jinja2
md5sum = cd6bb9bd0734f17469b0ca88f8b1a531 md5sum = 0f30ca0d299d0150b22fe8b0ee12f150
[template-nginx-eventsource-slave-virtualhost] [template-nginx-eventsource-slave-virtualhost]
filename = templates/nginx-eventsource-slave.conf.in filename = templates/nginx-eventsource-slave.conf.in
...@@ -94,11 +94,19 @@ md5sum = b9f73f6323f9fceea054c46c854d2862 ...@@ -94,11 +94,19 @@ md5sum = b9f73f6323f9fceea054c46c854d2862
[template-graceful-script] [template-graceful-script]
filename = templates/graceful-script.sh.in filename = templates/graceful-script.sh.in
md5sum = 31dd34de4c40a1d814bcbef482c757cc md5sum = 061cc244558fd3af2b6bacf17cae5555
[template-validate-script] [template-validate-script]
filename = templates/validate-script.sh.in filename = templates/validate-script.sh.in
md5sum = 4c80ba3727c397f8d5b12cf1888cf959 md5sum = 89839a3f4ab71cab459afd1c27d00326
[template-configuration-state-script]
filename = templates/configuration-state-script.sh.in
md5sum = 00dfdc488548d1b14e89ba5f2f08fcb8
[template-rotate-script]
filename = templates/rotate-script.sh.in
md5sum = 8c150e1e6c993708d31936742f3a7302
[caddyprofiledeps-setup] [caddyprofiledeps-setup]
filename = setup.py filename = setup.py
...@@ -110,4 +118,4 @@ md5sum = 38792c2dceae38ab411592ec36fff6a8 ...@@ -110,4 +118,4 @@ md5sum = 38792c2dceae38ab411592ec36fff6a8
[template-kedifa] [template-kedifa]
filename = instance-kedifa.cfg.in filename = instance-kedifa.cfg.in
md5sum = 2eecc01a16f6ae156c3a7889eef42c34 md5sum = bb68849a97b0305bef149d6aed33a804
...@@ -9,6 +9,7 @@ extends = ...@@ -9,6 +9,7 @@ extends =
../../component/rdiff-backup/buildout.cfg ../../component/rdiff-backup/buildout.cfg
../../component/trafficserver/buildout.cfg ../../component/trafficserver/buildout.cfg
../../component/6tunnel/buildout.cfg ../../component/6tunnel/buildout.cfg
../../component/xz-utils/buildout.cfg
../../stack/nodejs.cfg ../../stack/nodejs.cfg
../../stack/caucase/buildout.cfg ../../stack/caucase/buildout.cfg
...@@ -35,7 +36,7 @@ parts += ...@@ -35,7 +36,7 @@ parts +=
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/nexedi/kedifa.git repository = https://lab.nexedi.com/nexedi/kedifa.git
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
revision = acf0f0541ae95df9e2f2b126b3eb775f4b18678d revision = c89c31a5cdc9367e196411d91c4dcd0229bb7893
[kedifa-develop] [kedifa-develop]
recipe = zc.recipe.egg:develop recipe = zc.recipe.egg:develop
...@@ -113,12 +114,15 @@ sha256sum = ${coreutils:location}/bin/sha256sum ...@@ -113,12 +114,15 @@ sha256sum = ${coreutils:location}/bin/sha256sum
kedifa = ${:bin_directory}/kedifa kedifa = ${:bin_directory}/kedifa
kedifa-updater = ${:bin_directory}/kedifa-updater kedifa-updater = ${:bin_directory}/kedifa-updater
kedifa-csr = ${:bin_directory}/kedifa-csr kedifa-csr = ${:bin_directory}/kedifa-csr
xz_location = ${xz-utils:location}
monitor_template = ${monitor-template:output} monitor_template = ${monitor-template:output}
template_cached_slave_virtualhost = ${template-cached-slave-virtualhost:target} template_cached_slave_virtualhost = ${template-cached-slave-virtualhost:target}
template_caddy_frontend_configuration = ${template-caddy-frontend-configuration:target} template_caddy_frontend_configuration = ${template-caddy-frontend-configuration:target}
template_graceful_script = ${template-graceful-script:target} template_graceful_script = ${template-graceful-script:target}
template_validate_script = ${template-validate-script:target} template_validate_script = ${template-validate-script:target}
template_rotate_script = ${template-rotate-script:target}
template_configuration_state_script = ${template-configuration-state-script:target}
template_caddy_lazy_script_call = ${template-caddy-lazy-script-call:target} template_caddy_lazy_script_call = ${template-caddy-lazy-script-call:target}
template_default_slave_virtualhost = ${template-default-slave-virtualhost:target} template_default_slave_virtualhost = ${template-default-slave-virtualhost:target}
template_empty = ${template-empty:target} template_empty = ${template-empty:target}
...@@ -237,6 +241,10 @@ filename = storage.config.jinja2 ...@@ -237,6 +241,10 @@ filename = storage.config.jinja2
url = ${:_profile_base_location_}/templates/trafficserver/${:filename} url = ${:_profile_base_location_}/templates/trafficserver/${:filename}
filename = logging.config.jinja2 filename = logging.config.jinja2
[template-rotate-script]
<=download-template
filename = rotate-script.sh.in
[template-caddy-lazy-script-call] [template-caddy-lazy-script-call]
<=download-template <=download-template
filename = apache-lazy-script-call.sh.in filename = apache-lazy-script-call.sh.in
...@@ -249,6 +257,10 @@ filename = graceful-script.sh.in ...@@ -249,6 +257,10 @@ filename = graceful-script.sh.in
<=download-template <=download-template
filename = validate-script.sh.in filename = validate-script.sh.in
[template-configuration-state-script]
<=download-template
filename = configuration-state-script.sh.in
# Migrated from KVM recipe # Migrated from KVM recipe
[http-proxy] [http-proxy]
# https://github.com/nodejitsu/node-http-proxy # https://github.com/nodejitsu/node-http-proxy
......
...@@ -9,7 +9,6 @@ extends = ...@@ -9,7 +9,6 @@ extends =
parts = parts =
directory directory
configtest
logrotate-entry-caddy logrotate-entry-caddy
caddy-frontend caddy-frontend
switch-caddy-softwaretype switch-caddy-softwaretype
...@@ -36,7 +35,7 @@ parts = ...@@ -36,7 +35,7 @@ parts =
trafficserver-logging-config trafficserver-logging-config
trafficserver-promise-listen-port trafficserver-promise-listen-port
trafficserver-promise-cache-availability trafficserver-promise-cache-availability
cron-entry-logrotate-trafficserver
## Monitor for Caddy ## Monitor for Caddy
monitor-base monitor-base
monitor-ats-cache-stats-wrapper monitor-ats-cache-stats-wrapper
...@@ -344,7 +343,9 @@ wrapper-path = ${directory:bin}/caddy-wrapper ...@@ -344,7 +343,9 @@ wrapper-path = ${directory:bin}/caddy-wrapper
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = ${caddy-wrapper:wrapper-path} -pidfile ${caddy-configuration:pid-file} command-line = ${caddy-wrapper:wrapper-path} -pidfile ${caddy-configuration:pid-file}
wrapper-path = ${directory:service}/frontend_caddy wrapper-path = ${directory:service}/frontend_caddy
hash-files = ${buildout:directory}/software_release/buildout.cfg hash-files =
${buildout:directory}/software_release/buildout.cfg
${caddy-wrapper:wrapper-path}
[not-found-html] [not-found-html]
recipe = slapos.cookbook:symbolic.link recipe = slapos.cookbook:symbolic.link
...@@ -369,8 +370,7 @@ frontend-configuration = ${directory:etc}/Caddyfile ...@@ -369,8 +370,7 @@ frontend-configuration = ${directory:etc}/Caddyfile
access-log = ${directory:log}/frontend-access.log access-log = ${directory:log}/frontend-access.log
error-log = ${directory:log}/frontend-error.log error-log = ${directory:log}/frontend-error.log
pid-file = ${directory:run}/httpd.pid pid-file = ${directory:run}/httpd.pid
frontend-configuration-verification = ${frontend-caddy-validate:rendered} frontend-graceful-command = ${frontend-caddy-validate:rendered} && kill -USR1 $(cat ${:pid-file})
frontend-graceful-command = ${:frontend-configuration-verification} && kill -USR1 $(cat ${:pid-file})
not-found-file = ${caddy-directory:document-root}/notfound.html not-found-file = ${caddy-directory:document-root}/notfound.html
master-certificate = ${caddy-directory:master-autocert-dir}/master.pem master-certificate = ${caddy-directory:master-autocert-dir}/master.pem
# Communication with ATS # Communication with ATS
...@@ -378,11 +378,6 @@ cache-port = ${trafficserver-variable:input-port} ...@@ -378,11 +378,6 @@ cache-port = ${trafficserver-variable:input-port}
cache-through-port = 26011 cache-through-port = 26011
ssl-cache-through-port = 26012 ssl-cache-through-port = 26012
[configtest]
recipe = slapos.cookbook:wrapper
command-line = ${frontend-caddy-validate:rendered}
wrapper-path = ${directory:bin}/caddy-configtest
# BBB: SlapOS Master non-zero knowledge BEGIN # BBB: SlapOS Master non-zero knowledge BEGIN
[get-self-signed-fallback-access] [get-self-signed-fallback-access]
recipe = collective.recipe.shelloutput recipe = collective.recipe.shelloutput
...@@ -425,6 +420,7 @@ local-state = ${directory:var}/trafficserver ...@@ -425,6 +420,7 @@ local-state = ${directory:var}/trafficserver
bin_path = {{ parameter_dict['trafficserver'] }}/bin bin_path = {{ parameter_dict['trafficserver'] }}/bin
log = ${directory:log}/trafficserver log = ${directory:log}/trafficserver
cache-path = ${directory:srv}/ats_cache cache-path = ${directory:srv}/ats_cache
logrotate-backup = ${logrotate-directory:logrotate-backup}/trafficserver
[trafficserver-variable] [trafficserver-variable]
wrapper-path = ${directory:service}/trafficserver wrapper-path = ${directory:service}/trafficserver
...@@ -539,36 +535,75 @@ module = trafficserver_cache_availability ...@@ -539,36 +535,75 @@ module = trafficserver_cache_availability
name = trafficserver-cache-availability.py name = trafficserver-cache-availability.py
config-wrapper-path = ${trafficserver-ctl:wrapper-path} config-wrapper-path = ${trafficserver-ctl:wrapper-path}
[trafficserver-rotate-script]
< = jinja2-template-base
template = {{ parameter_dict['template_rotate_script'] }}
rendered = ${directory:bin}/trafficserver-rotate
mode = 0700
xz_binary = {{ parameter_dict['xz_location'] ~ '/bin/xz' }}
pattern = *.old
# days to keep log files
keep_days = 365
extra-context =
key log_dir trafficserver-directory:log
key rotate_dir trafficserver-directory:logrotate-backup
key xz_binary :xz_binary
key keep_days :keep_days
key pattern :pattern
[cron-entry-logrotate-trafficserver]
recipe = slapos.cookbook:cron.d
cron-entries = ${directory:etc}/cron.d
name = trafficserver-logrotate
frequency = 0 0 * * *
command = ${trafficserver-rotate-script:rendered}
### End of ATS sections ### End of ATS sections
### Caddy Graceful and promises ### Caddy Graceful and promises
[frontend-caddy-graceful] [frontend-caddy-configuration-state]
< = jinja2-template-base < = jinja2-template-base
template = {{ parameter_dict['template_graceful_script'] }} template = {{ parameter_dict['template_configuration_state_script'] }}
rendered = ${directory:etc-run}/frontend-caddy-safe-graceful rendered = ${directory:bin}/${:_buildout_section_name_}
mode = 0700 mode = 0700
path_list = ${caddy-configuration:frontend-configuration} ${frontend-configuration:log-access-configuration} ${caddy-directory:slave-configuration}/*.conf ${caddy-directory:slave-with-cache-configuration}/*.conf ${caddy-directory:master-autocert-dir}/*.key ${caddy-directory:master-autocert-dir}/*.crt ${caddy-directory:master-autocert-dir}/*.pem ${caddy-directory:autocert}/*.pem ${caddy-directory:custom-ssl-directory}/*.proxy_ca_crt ${directory:bbb-ssl-dir}/*.crt path_list = ${caddy-configuration:frontend-configuration} ${frontend-configuration:log-access-configuration} ${caddy-directory:slave-configuration}/*.conf ${caddy-directory:slave-with-cache-configuration}/*.conf ${caddy-directory:master-autocert-dir}/*.key ${caddy-directory:master-autocert-dir}/*.crt ${caddy-directory:master-autocert-dir}/*.pem ${caddy-directory:autocert}/*.pem ${caddy-directory:custom-ssl-directory}/*.proxy_ca_crt ${directory:bbb-ssl-dir}/*.crt
sha256sum = {{ parameter_dict['sha256sum'] }} sha256sum = {{ parameter_dict['sha256sum'] }}
signature_file = ${directory:run}/caddy_graceful_signature
extra-context = extra-context =
key graceful_reload_command caddy-configuration:frontend-graceful-command
key path_list :path_list key path_list :path_list
key sha256sum :sha256sum key sha256sum :sha256sum
key signature_file :signature_file key signature_file :signature_file
[frontend-caddy-configuration-state-graceful]
< = frontend-caddy-configuration-state
signature_file = ${directory:run}/graceful_configuration_state_signature
[frontend-caddy-configuration-state-validate]
< = frontend-caddy-configuration-state
signature_file = ${directory:run}/validate_configuration_state_signature
[frontend-caddy-graceful]
< = jinja2-template-base
template = {{ parameter_dict['template_graceful_script'] }}
rendered = ${directory:etc-run}/frontend-caddy-safe-graceful
mode = 0700
extra-context =
key graceful_reload_command caddy-configuration:frontend-graceful-command
key caddy_configuration_state frontend-caddy-configuration-state-graceful:rendered
[frontend-caddy-validate] [frontend-caddy-validate]
< = jinja2-template-base < = jinja2-template-base
template = {{ parameter_dict['template_validate_script'] }} template = {{ parameter_dict['template_validate_script'] }}
rendered = ${directory:bin}/frontend-caddy-validate rendered = ${directory:bin}/frontend-caddy-validate
mode = 0700 mode = 0700
sha256sum = {{ parameter_dict['sha256sum'] }} last_state_file = ${directory:run}/caddy_configuration_last_state
signature_file = ${directory:run}/caddy_validate_signature
extra-context = extra-context =
key wrapper caddy-wrapper:wrapper-path key wrapper caddy-wrapper:wrapper-path
key path_list frontend-caddy-graceful:path_list key caddy_configuration_state frontend-caddy-configuration-state-validate:rendered
key sha256sum :sha256sum key last_state_file :last_state_file
key signature_file :signature_file
[frontend-caddy-lazy-graceful] [frontend-caddy-lazy-graceful]
< = jinja2-template-base < = jinja2-template-base
...@@ -583,11 +618,22 @@ extra-context = ...@@ -583,11 +618,22 @@ extra-context =
key lazy_command caddy-configuration:frontend-graceful-command key lazy_command caddy-configuration:frontend-graceful-command
# Promises checking configuration: # Promises checking configuration:
[promise-helper-last-configuration-state]
< = jinja2-template-base
template = {{ parameter_dict['template_empty'] }}
rendered = ${directory:bin}/frontend-read-last-configuration-state
mode = 0700
content =
#!/bin/sh
exit `cat ${frontend-caddy-validate:last_state_file}`
context =
key content :content
[promise-frontend-caddy-configuration] [promise-frontend-caddy-configuration]
<= promise-plugin-base <= promise-plugin-base
module = validate_frontend_configuration module = validate_frontend_configuration
name = frontend-caddy-configuration-promise.py name = frontend-caddy-configuration-promise.py
config-verification-script = ${caddy-configuration:frontend-configuration-verification} config-verification-script = ${promise-helper-last-configuration-state:rendered}
[promise-caddy-frontend-v4-https] [promise-caddy-frontend-v4-https]
<= promise-plugin-base <= promise-plugin-base
......
...@@ -133,6 +133,14 @@ context = ...@@ -133,6 +133,14 @@ context =
{% do slave_error_list.append('slave https-url %r invalid' % (slave['https-url'],)) %} {% do slave_error_list.append('slave https-url %r invalid' % (slave['https-url'],)) %}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% set ssl_proxy_ca_crt = slave.get('ssl_proxy_ca_crt') %}
{% if ssl_proxy_ca_crt %}
{% set check_popen = popen([parameter_dict['openssl'], 'x509', '-noout']) %}
{% do check_popen.communicate(ssl_proxy_ca_crt) %}
{% if check_popen.returncode != 0 %}
{% do slave_error_list.append('ssl_proxy_ca_crt is invalid') %}
{% endif %}
{% endif %}
{# BBB: SlapOS Master non-zero knowledge BEGIN #} {# BBB: SlapOS Master non-zero knowledge BEGIN #}
{% for key in ['ssl_key', 'ssl_crt', 'ssl_ca_crt'] %} {% for key in ['ssl_key', 'ssl_crt', 'ssl_ca_crt'] %}
{% if key in slave %} {% if key in slave %}
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
}, },
"global-disable-http2": { "global-disable-http2": {
"default": "false", "default": "false",
"description": "Disables globally HTTP2 in Caddy, thus enable-http2-by-default here and enable-http2 have no effect. Rational is that in some loaded environments it is better to run Caddy without any HTTP2 capabilities.", "description": "Disables globally HTTP2 in Caddy, thus enable-http2-by-default here and enable-http2 have no effect. Rational is that in some loaded environments it is better to run Caddy without any HTTP2 capabilities. Warning: Changing the parameter will result in restarting Caddy process.",
"enum": [ "enum": [
"true", "true",
"false" "false"
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
"mpm-graceful-shutdown-timeout": { "mpm-graceful-shutdown-timeout": {
"default": 5, "default": 5,
"description": "Value passed to -grace parameter of Caddy, see https://caddyserver.com/docs/cli .", "description": "Value passed to -grace parameter of Caddy, see https://caddyserver.com/docs/cli .",
"title": "Duration of the graceful shutdown period", "title": "Duration of the graceful shutdown period. Warning: Changing the parameter will result in restarting Caddy process.",
"type": "integer" "type": "integer"
}, },
"nginx-domain": { "nginx-domain": {
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
}, },
"enable-quic": { "enable-quic": {
"default": "false", "default": "false",
"description": "Enables QUIC - Quick UDP Internet Connections. Note that this is experimental feature, thus can result in undefined behaviour.", "description": "Enables QUIC - Quick UDP Internet Connections. Note that this is experimental feature, thus can result in undefined behaviour. Warning: Changing the parameter will result in restarting Caddy process.",
"enum": [ "enum": [
"true", "true",
"false" "false"
......
...@@ -7,13 +7,16 @@ extends = ...@@ -7,13 +7,16 @@ extends =
{{ parameter_dict['monitor_template'] }} {{ parameter_dict['monitor_template'] }}
parts = parts =
monitor-base
directory directory
kedifa kedifa
promise-kedifa-listen-ip-port
slave-kedifa-information slave-kedifa-information
caucased caucased
caucased-promise caucased-promise
caucase-updater caucase-updater
expose-csr_id expose-csr_id
promise-expose-csr_id-ip-port
[caucased] [caucased]
hash-files = ${buildout:directory}/software_release/buildout.cfg hash-files = ${buildout:directory}/software_release/buildout.cfg
...@@ -50,6 +53,7 @@ run = ${:var}/run ...@@ -50,6 +53,7 @@ run = ${:var}/run
service = ${:etc}/service service = ${:etc}/service
etc-run = ${:etc}/run etc-run = ${:etc}/run
promise = ${:etc}/promise promise = ${:etc}/promise
plugin = ${:etc}/plugin
# KeDiFa directories # KeDiFa directories
kedifa = ${:srv}/kedifa kedifa = ${:srv}/kedifa
...@@ -151,6 +155,13 @@ template = inline: ...@@ -151,6 +155,13 @@ template = inline:
rendered = ${directory:caddy-csr_id}/Caddyfile rendered = ${directory:caddy-csr_id}/Caddyfile
[promise-expose-csr_id-ip-port]
<= promise-plugin-base
module = check_port_listening
name = expose-csr_id-ip-port-listening.py
config-hostname = ${expose-csr_id-configuration:ip}
config-port = ${expose-csr_id-configuration:port}
[expose-csr_id] [expose-csr_id]
depends = ${store-csr_id:command} depends = ${store-csr_id:command}
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
...@@ -184,6 +195,14 @@ context = ...@@ -184,6 +195,14 @@ context =
section directory directory section directory directory
${:extra-context} ${:extra-context}
[promise-plugin-base]
recipe = slapos.cookbook:promise.plugin
eggs =
slapos.toolbox
content =
from slapos.promise.plugin.${:module} import RunPromise
output = ${directory:plugin}/${:name}
[kedifa-config] [kedifa-config]
ip = {{ instance_parameter['ipv6-random'] }} ip = {{ instance_parameter['ipv6-random'] }}
port = {{ instance_parameter['configuration.kedifa_port'] }} port = {{ instance_parameter['configuration.kedifa_port'] }}
...@@ -200,6 +219,13 @@ recipe = slapos.cookbook:wrapper ...@@ -200,6 +219,13 @@ recipe = slapos.cookbook:wrapper
command-line = kill -SIGHUP `cat ${kedifa-config:pidfile}` command-line = kill -SIGHUP `cat ${kedifa-config:pidfile}`
wrapper-path = ${directory:etc-run}/kedifa-reloader wrapper-path = ${directory:etc-run}/kedifa-reloader
[promise-kedifa-listen-ip-port]
<= promise-plugin-base
module = check_port_listening
name = kedifa-ip-port-listening.py
config-hostname = ${kedifa-config:ip}
config-port = ${kedifa-config:port}
[kedifa] [kedifa]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
command-line = {{ parameter_dict['kedifa'] }} command-line = {{ parameter_dict['kedifa'] }}
......
...@@ -446,9 +446,8 @@ hash-files = ${buildout:directory}/software_release/buildout.cfg ...@@ -446,9 +446,8 @@ hash-files = ${buildout:directory}/software_release/buildout.cfg
[kedifa-updater-run] [kedifa-updater-run]
recipe = plone.recipe.command recipe = plone.recipe.command
# unfortunately slapos.cookbook:wrapper does not return generated wrapper path stop-on-error = True
# so it is needed to access it via service directory globbing command = {{ kedifa_updater }} --prepare-only ${kedifa-updater-mapping:file} --on-update "{{ frontend_graceful_reload }}"
command = {{ service_directory }}/kedifa-updater* --prepare-only
update-command = ${:command} update-command = ${:command}
[kedifa-updater-mapping] [kedifa-updater-mapping]
...@@ -486,6 +485,7 @@ parts += ...@@ -486,6 +485,7 @@ parts +=
tunnel-6to4-base-cached_port tunnel-6to4-base-cached_port
tunnel-6to4-base-ssl_cached_port tunnel-6to4-base-ssl_cached_port
expose-csr_id expose-csr_id
promise-expose-csr_id-ip-port
cache-access = {{ cache_access }} cache-access = {{ cache_access }}
...@@ -538,6 +538,13 @@ template = inline: ...@@ -538,6 +538,13 @@ template = inline:
rendered = {{ directory_caddy_csr_id }}/Caddyfile rendered = {{ directory_caddy_csr_id }}/Caddyfile
[promise-expose-csr_id-ip-port]
<= promise-plugin-base
module = check_port_listening
name = expose-csr_id-ip-port-listening.py
config-hostname = ${expose-csr_id-configuration:ip}
config-port = ${expose-csr_id-configuration:port}
[expose-csr_id] [expose-csr_id]
depends = ${store-csr_id:command} depends = ${store-csr_id:command}
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
......
#!/bin/sh
set -e
SIGNATURE_FILE={{ signature_file }}
NSIGNATURE_FILE={{ signature_file }}.tmp
touch $SIGNATURE_FILE
{{ sha256sum }} {{ path_list }} 2> /dev/null | sort -k 66 > $NSIGNATURE_FILE
if diff "$SIGNATURE_FILE" "$NSIGNATURE_FILE" > /dev/null ; then
rm -f ${NSIGNATURE_FILE}
exit 1
else
mv "$NSIGNATURE_FILE" "$SIGNATURE_FILE"
exit 0
fi
#!/bin/sh #!/bin/sh
SIGNATURE_FILE={{ signature_file }} set -e
NSIGNATURE_FILE={{ signature_file }}.tmp
touch $SIGNATURE_FILE if {{ caddy_configuration_state }} ; then
{{ sha256sum }} {{ path_list }} | sort -k 66 > $NSIGNATURE_FILE echo "Reloading.."
{{ graceful_reload_command }}
# If no diff, no restart for now else
if diff "$SIGNATURE_FILE" "$NSIGNATURE_FILE" > /dev/null ; then
echo "Nothing changed, so nothing to reload" echo "Nothing changed, so nothing to reload"
exit 0 exit 0
fi fi
echo "Reloading.."
{{ graceful_reload_command }}
mv "$NSIGNATURE_FILE" "$SIGNATURE_FILE"
#!/bin/sh
set -e
LOG_DIR={{ log_dir }}
LOGROTATE_DIR={{ rotate_dir }}
PATTERN={{ pattern }}
COMPRESS={{ xz_binary }}
KEEP_DAYS={{ keep_days }}
# Move out ${PATTERN} files
find ${LOG_DIR} -maxdepth 1 -type f -name ${PATTERN} -exec mv {} ${LOGROTATE_DIR}/ \;
# Compress
find ${LOGROTATE_DIR} -maxdepth 1 -type f -name ${PATTERN} -exec ${COMPRESS} -9 {} \;
# Retent old files
find ${LOGROTATE_DIR} -maxdepth 1 -type f -mtime +${KEEP_DAYS} -delete
...@@ -5,6 +5,6 @@ log.ascii { ...@@ -5,6 +5,6 @@ log.ascii {
Format = squid, Format = squid,
Filename = 'squid', Filename = 'squid',
RollingEnabled = 1, RollingEnabled = 1,
RollingIntervalSec = 3600, RollingIntervalSec = 86400,
RollingOffsetHr = 0 RollingOffsetHr = 0
} }
...@@ -2,21 +2,16 @@ ...@@ -2,21 +2,16 @@
set -e set -e
SIGNATURE_FILE={{ signature_file }} LAST_STATE_FILE={{ last_state_file }}
NSIGNATURE_FILE={{ signature_file }}.tmp
SIGNATURE_STATUS={{ signature_file }}.status
touch $SIGNATURE_FILE # force validation each 2 hours
{{ sha256sum }} {{ path_list }} | sort -k 66 > $NSIGNATURE_FILE [ -f $LAST_STATE_FILE ] && find $LAST_STATE_FILE -mmin +120 -delete
configuration_state=$({{ caddy_configuration_state }})
if diff "$SIGNATURE_FILE" "$NSIGNATURE_FILE" > /dev/null; then if [ ! -f $LAST_STATE_FILE ] || $configuration_state ; then
rm -f "$NSIGNATURE_FILE"
else
mv "$NSIGNATURE_FILE" "$SIGNATURE_FILE"
# do not catch errors during validation # do not catch errors during validation
set +e set +e
{{ wrapper }} -validate {{ wrapper }} -validate
echo $? > $SIGNATURE_STATUS echo $? > $LAST_STATE_FILE
set -e set -e
fi fi
exit `cat $SIGNATURE_STATUS` exit `cat $LAST_STATE_FILE`
...@@ -42,6 +42,10 @@ from forcediphttpsadapter.adapters import ForcedIPHTTPSAdapter ...@@ -42,6 +42,10 @@ from forcediphttpsadapter.adapters import ForcedIPHTTPSAdapter
import time import time
import tempfile import tempfile
import ipaddress import ipaddress
try:
import lzma
except ImportError:
from backports import lzma
from utils import SlapOSInstanceTestCase from utils import SlapOSInstanceTestCase
from utils import findFreeTCPPort from utils import findFreeTCPPort
...@@ -271,7 +275,9 @@ class TestDataMixin(object): ...@@ -271,7 +275,9 @@ class TestDataMixin(object):
'%(group)s:%(name)s %(statename)s' % q for q '%(group)s:%(name)s %(statename)s' % q for q
in self.getSupervisorRPCServer().supervisor.getAllProcessInfo()])) in self.getSupervisorRPCServer().supervisor.getAllProcessInfo()]))
def assertTestData(self, runtime_data, hash_value=None, msg=None): def assertTestData(self, runtime_data, hash_value_dict=None, msg=None):
if hash_value_dict is None:
hash_value_dict = {}
filename = '%s-%s.txt' % (self.id(), 'CADDY') filename = '%s-%s.txt' % (self.id(), 'CADDY')
test_data_file = os.path.join( test_data_file = os.path.join(
os.path.dirname(os.path.realpath(__file__)), 'test_data', filename) os.path.dirname(os.path.realpath(__file__)), 'test_data', filename)
...@@ -281,8 +287,9 @@ class TestDataMixin(object): ...@@ -281,8 +287,9 @@ class TestDataMixin(object):
except IOError: except IOError:
test_data = '' test_data = ''
if hash_value is not None: for hash_type, hash_value in hash_value_dict.items():
runtime_data = runtime_data.replace(hash_value, '{hash}') runtime_data = runtime_data.replace(hash_value, '{hash-%s}' % (
hash_type),)
maxDiff = self.maxDiff maxDiff = self.maxDiff
self.maxDiff = None self.maxDiff = None
...@@ -302,10 +309,12 @@ class TestDataMixin(object): ...@@ -302,10 +309,12 @@ class TestDataMixin(object):
self.maxDiff = maxDiff self.maxDiff = maxDiff
self.longMessage = longMessage self.longMessage = longMessage
def _test_file_list(self, slave_dir, IGNORE_PATH_LIST): def _test_file_list(self, slave_dir_list, IGNORE_PATH_LIST=None):
if IGNORE_PATH_LIST is None:
IGNORE_PATH_LIST = []
runtime_data = [] runtime_data = []
for slave_var in glob.glob(os.path.join(self.instance_path, '*', 'var')): for slave_var in glob.glob(os.path.join(self.instance_path, '*')):
for entry in os.walk(os.path.join(slave_var, slave_dir)): for entry in os.walk(os.path.join(slave_var, *slave_dir_list)):
for filename in entry[2]: for filename in entry[2]:
path = os.path.join( path = os.path.join(
entry[0][len(self.instance_path) + 1:], filename) entry[0][len(self.instance_path) + 1:], filename)
...@@ -315,7 +324,7 @@ class TestDataMixin(object): ...@@ -315,7 +324,7 @@ class TestDataMixin(object):
self.assertTestData(runtime_data) self.assertTestData(runtime_data)
def test_file_list_log(self): def test_file_list_log(self):
self._test_file_list('log', [ self._test_file_list(['var', 'log'], [
# no control at all when cron would kick in, ignore it # no control at all when cron would kick in, ignore it
'cron.log', 'cron.log',
# appears late and is quite unstable, no need to assert # appears late and is quite unstable, no need to assert
...@@ -331,26 +340,33 @@ class TestDataMixin(object): ...@@ -331,26 +340,33 @@ class TestDataMixin(object):
]) ])
def test_file_list_run(self): def test_file_list_run(self):
self._test_file_list('run', [ self._test_file_list(['var', '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',
]) ])
def test_file_list_etc_cron_d(self):
self._test_file_list(['etc', 'cron.d'])
def test_supervisor_state(self): def test_supervisor_state(self):
# give a chance for etc/run scripts to finish # give a chance for etc/run scripts to finish
time.sleep(1) time.sleep(1)
hash_files = [ hash_file_list = [os.path.join(
'software_release/buildout.cfg', self.computer_partition_root_path, 'software_release/buildout.cfg')]
] hash_value_dict = {
hash_files = [os.path.join(self.computer_partition_root_path, path) 'generic': self.generateHashFromFiles(hash_file_list),
for path in hash_files] }
h = self.generateHashFromFiles(hash_files) for caddy_wrapper_path in glob.glob(os.path.join(
self.instance_path, '*', 'bin', 'caddy-wrapper')):
partition_id = caddy_wrapper_path.split('/')[-3]
hash_value_dict[
'caddy-%s' % (partition_id)] = self.generateHashFromFiles(
hash_file_list + [caddy_wrapper_path]
)
runtime_data = self.getTrimmedProcessInfo() runtime_data = self.getTrimmedProcessInfo()
self.assertTestData(runtime_data, hash_value=h) self.assertTestData(runtime_data, hash_value_dict=hash_value_dict)
def test_promise_run_plugin(self): def test_promise_run_plugin(self):
ignored_plugin_list = [ ignored_plugin_list = [
...@@ -374,6 +390,12 @@ class TestDataMixin(object): ...@@ -374,6 +390,12 @@ class TestDataMixin(object):
plugin = plugin_path[strip:] plugin = plugin_path[strip:]
if plugin in ignored_plugin_list: if plugin in ignored_plugin_list:
continue continue
# reset frontend-caddy-configuration-promise.py state
if plugin == 'frontend-caddy-configuration-promise.py':
validate_path = os.path.join(
partition_path, 'bin', 'frontend-caddy-validate')
if os.path.exists(validate_path):
subprocess_status_output(validate_path)
plugin_status, plugin_result = subprocess_status_output([ plugin_status, plugin_result = subprocess_status_output([
runpromise_bin, runpromise_bin,
'-c', monitor_conf, '-c', monitor_conf,
...@@ -1003,6 +1025,11 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1003,6 +1025,11 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'ssl-proxy-verify': True, 'ssl-proxy-verify': True,
'ssl_proxy_ca_crt': cls.test_server_ca.certificate_pem, 'ssl_proxy_ca_crt': cls.test_server_ca.certificate_pem,
}, },
'ssl-proxy-verify_ssl_proxy_ca_crt_damaged': {
'url': cls.backend_https_url,
'ssl-proxy-verify': True,
'ssl_proxy_ca_crt': 'damaged',
},
'ssl-proxy-verify_ssl_proxy_ca_crt-unverified': { 'ssl-proxy-verify_ssl_proxy_ca_crt-unverified': {
'url': cls.backend_https_url, 'url': cls.backend_https_url,
'ssl-proxy-verify': True, 'ssl-proxy-verify': True,
...@@ -1220,6 +1247,58 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1220,6 +1247,58 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
q for q in glob.glob(os.path.join(self.instance_path, '*',)) q for q in glob.glob(os.path.join(self.instance_path, '*',))
if os.path.exists(os.path.join(q, 'etc', 'trafficserver'))][0] if os.path.exists(os.path.join(q, 'etc', 'trafficserver'))][0]
def test_trafficserver_logrotate(self):
ats_partition = [
q for q in glob.glob(os.path.join(self.instance_path, '*',))
if os.path.exists(os.path.join(q, 'bin', 'trafficserver-rotate'))][0]
ats_log_dir = os.path.join(ats_partition, 'var', 'log', 'trafficserver')
ats_logrotate_dir = os.path.join(
ats_partition, 'srv', 'backup', 'logrotate', 'trafficserver')
ats_rotate = os.path.join(ats_partition, 'bin', 'trafficserver-rotate')
old_file_name = 'log-old.old'
older_file_name = 'log-older.old'
with open(os.path.join(ats_log_dir, old_file_name), 'w') as fh:
fh.write('old')
with open(os.path.join(ats_log_dir, older_file_name), 'w') as fh:
fh.write('older')
# check rotation
result, output = subprocess_status_output([ats_rotate])
self.assertEqual(0, result)
self.assertEqual(
set(['log-old.old.xz', 'log-older.old.xz']),
set(os.listdir(ats_logrotate_dir)))
self.assertFalse(old_file_name + '.xz' in os.listdir(ats_log_dir))
self.assertFalse(older_file_name + '.xz' in os.listdir(ats_log_dir))
with lzma.open(
os.path.join(ats_logrotate_dir, old_file_name + '.xz')) as fh:
self.assertEqual(
'old',
fh.read()
)
with lzma.open(
os.path.join(ats_logrotate_dir, older_file_name + '.xz')) as fh:
self.assertEqual(
'older',
fh.read()
)
# check retention
old_time = time.time() - (400 * 24 * 3600)
os.utime(
os.path.join(ats_logrotate_dir, older_file_name + '.xz'),
(old_time, old_time))
result, output = subprocess_status_output([ats_rotate])
self.assertEqual(0, result)
self.assertEqual(
['log-old.old.xz'],
os.listdir(ats_logrotate_dir))
def test_master_partition_state(self): def test_master_partition_state(self):
parameter_dict = self.parseConnectionParameterDict() parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict) self.assertKeyWithPop('monitor-setup-url', parameter_dict)
...@@ -1229,13 +1308,15 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1229,13 +1308,15 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
'monitor-base-url': None, 'monitor-base-url': None,
'domain': 'example.com', 'domain': 'example.com',
'accepted-slave-amount': '48', 'accepted-slave-amount': '48',
'rejected-slave-amount': '4', 'rejected-slave-amount': '5',
'slave-amount': '52', 'slave-amount': '53',
'rejected-slave-dict': { 'rejected-slave-dict': {
"_apache_custom_http_s-rejected": ["slave not authorized"], "_apache_custom_http_s-rejected": ["slave not authorized"],
"_caddy_custom_http_s": ["slave not authorized"], "_caddy_custom_http_s": ["slave not authorized"],
"_caddy_custom_http_s-rejected": ["slave not authorized"], "_caddy_custom_http_s-rejected": ["slave not authorized"],
"_type-eventsource": ["type:eventsource is not implemented"] "_type-eventsource": ["type:eventsource is not implemented"],
"_ssl-proxy-verify_ssl_proxy_ca_crt_damaged": [
"ssl_proxy_ca_crt is invalid"]
} }
} }
...@@ -1266,7 +1347,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -1266,7 +1347,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
os.path.join( os.path.join(
self.instance_path, '*', 'etc', 'monitor.conf' self.instance_path, '*', 'etc', 'monitor.conf'
)) ))
self.assertEqual(2, len(monitor_conf_list)) self.assertEqual(3, len(monitor_conf_list))
expected = [(False, q) for q in monitor_conf_list] expected = [(False, q) for q in monitor_conf_list]
got = [('!py!' in open(q).read(), q) for q in monitor_conf_list] got = [('!py!' in open(q).read(), q) for q in monitor_conf_list]
# check that no monitor.conf in generated configuratio has magic !py! # check that no monitor.conf in generated configuratio has magic !py!
...@@ -2427,6 +2508,14 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s { ...@@ -2427,6 +2508,14 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
result_http.headers['Set-Cookie'] result_http.headers['Set-Cookie']
) )
def test_ssl_proxy_verify_ssl_proxy_ca_crt_damaged(self):
parameter_dict = self.slave_connection_parameter_dict_dict[
'ssl-proxy-verify_ssl_proxy_ca_crt_damaged']
self.assertEqual(
{'request-error-list': '["ssl_proxy_ca_crt is invalid"]'},
parameter_dict
)
def test_ssl_proxy_verify_unverified(self): def test_ssl_proxy_verify_unverified(self):
parameter_dict = self.assertSlaveBase('ssl-proxy-verify-unverified') parameter_dict = self.assertSlaveBase('ssl-proxy-verify-unverified')
......
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
\ No newline at end of file T-1/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: OK T-2/etc/plugin/caddy_cached.py: OK
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,7 +18,8 @@ T-2/etc/plugin/caddy_ssl_cached.py: OK ...@@ -12,7 +18,8 @@ T-2/etc/plugin/caddy_ssl_cached.py: OK
T-2/etc/plugin/check-_test-error-log-last-day.py: OK T-2/etc/plugin/check-_test-error-log-last-day.py: OK
T-2/etc/plugin/check-_test-error-log-last-hour.py: OK T-2/etc/plugin/check-_test-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: ERROR T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/re6st-connectivity.py: OK T-2/etc/plugin/re6st-connectivity.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch EXITED T-0:monitor-httpd-{hash-generic}-on-watch EXITED
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch STOPPED T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch STOPPED T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch STOPPED T-2:6tunnel-11080-{hash-generic}-on-watch STOPPED
T-2:6tunnel-26012-{hash}-on-watch STOPPED T-2:6tunnel-11443-{hash-generic}-on-watch STOPPED
T-2:6tunnel-26011-{hash-generic}-on-watch STOPPED
T-2:6tunnel-26012-{hash-generic}-on-watch STOPPED
T-2:bootstrap-monitor STOPPED T-2:bootstrap-monitor STOPPED
T-2:certificate_authority-{hash}-on-watch STOPPED T-2:certificate_authority-{hash-generic}-on-watch STOPPED
T-2:crond-{hash}-on-watch STOPPED T-2:crond-{hash-generic}-on-watch STOPPED
T-2:expose-csr_id-{hash}-on-watch STOPPED T-2:expose-csr_id-{hash-generic}-on-watch STOPPED
T-2:frontend-caddy-safe-graceful STOPPED T-2:frontend-caddy-safe-graceful STOPPED
T-2:frontend_caddy-{hash}-on-watch STOPPED T-2:frontend_caddy-{hash-caddy-T-2}-on-watch STOPPED
T-2:kedifa-login-certificate-caucase-updater-on-watch STOPPED T-2:kedifa-login-certificate-caucase-updater-on-watch STOPPED
T-2:kedifa-updater-{hash}-on-watch STOPPED T-2:kedifa-updater-{hash-generic}-on-watch STOPPED
T-2:monitor-httpd-{hash}-on-watch STOPPED T-2:monitor-httpd-{hash-generic}-on-watch STOPPED
T-2:monitor-httpd-graceful STOPPED T-2:monitor-httpd-graceful STOPPED
T-2:trafficserver-{hash}-on-watch STOPPED T-2:trafficserver-{hash-generic}-on-watch STOPPED
T-2:trafficserver-reload STOPPED T-2:trafficserver-reload STOPPED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR ...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-_site_1-error-log-last-day.py: OK T-2/etc/plugin/check-_site_1-error-log-last-day.py: OK
T-2/etc/plugin/check-_site_1-error-log-last-hour.py: OK T-2/etc/plugin/check-_site_1-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -16,6 +22,7 @@ T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK ...@@ -16,6 +22,7 @@ T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK T-2/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK T-2/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -16,6 +22,7 @@ T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK ...@@ -16,6 +22,7 @@ T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK T-2/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK T-2/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -16,6 +22,7 @@ T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK ...@@ -16,6 +22,7 @@ T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK T-2/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK T-2/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -16,6 +22,7 @@ T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK ...@@ -16,6 +22,7 @@ T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK T-2/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK T-2/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR ...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-_empty-error-log-last-day.py: OK T-2/etc/plugin/check-_empty-error-log-last-day.py: OK
T-2/etc/plugin/check-_empty-error-log-last-hour.py: OK T-2/etc/plugin/check-_empty-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -10,6 +16,7 @@ T-2/etc/plugin/caddy_frontend_ipv6_http.py: OK ...@@ -10,6 +16,7 @@ T-2/etc/plugin/caddy_frontend_ipv6_http.py: OK
T-2/etc/plugin/caddy_frontend_ipv6_https.py: OK T-2/etc/plugin/caddy_frontend_ipv6_https.py: OK
T-2/etc/plugin/caddy_ssl_cached.py: ERROR T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch EXITED T-2:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -10,6 +16,7 @@ T-2/etc/plugin/caddy_frontend_ipv6_http.py: OK ...@@ -10,6 +16,7 @@ T-2/etc/plugin/caddy_frontend_ipv6_http.py: OK
T-2/etc/plugin/caddy_frontend_ipv6_https.py: OK T-2/etc/plugin/caddy_frontend_ipv6_https.py: OK
T-2/etc/plugin/caddy_ssl_cached.py: ERROR T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch EXITED T-2:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR ...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-_url-error-log-last-day.py: OK T-2/etc/plugin/check-_url-error-log-last-day.py: OK
T-2/etc/plugin/check-_url-error-log-last-hour.py: OK T-2/etc/plugin/check-_url-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR ...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-_default-error-log-last-day.py: OK T-2/etc/plugin/check-_default-error-log-last-day.py: OK
T-2/etc/plugin/check-_default-error-log-last-hour.py: OK T-2/etc/plugin/check-_default-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR ...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-_default-error-log-last-day.py: OK T-2/etc/plugin/check-_default-error-log-last-day.py: OK
T-2/etc/plugin/check-_default-error-log-last-hour.py: OK T-2/etc/plugin/check-_default-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
T-3/etc/cron.d/logrotate
T-3/etc/cron.d/monitor-configurator
T-3/etc/cron.d/monitor-globalstate
T-3/etc/cron.d/monitor_collect
T-3/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR ...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-_replicate-error-log-last-day.py: OK T-2/etc/plugin/check-_replicate-error-log-last-day.py: OK
T-2/etc/plugin/check-_replicate-error-log-last-hour.py: OK T-2/etc/plugin/check-_replicate-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
...@@ -27,7 +34,8 @@ T-3/etc/plugin/caddy_ssl_cached.py: OK ...@@ -27,7 +34,8 @@ T-3/etc/plugin/caddy_ssl_cached.py: OK
T-3/etc/plugin/check-_replicate-error-log-last-day.py: OK T-3/etc/plugin/check-_replicate-error-log-last-day.py: OK
T-3/etc/plugin/check-_replicate-error-log-last-hour.py: OK T-3/etc/plugin/check-_replicate-error-log-last-hour.py: OK
T-3/etc/plugin/check-free-disk-space.py: OK T-3/etc/plugin/check-free-disk-space.py: OK
T-3/etc/plugin/frontend-caddy-configuration-promise.py: ERROR T-3/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-3/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-3/etc/plugin/monitor-bootstrap-status.py: OK T-3/etc/plugin/monitor-bootstrap-status.py: OK
T-3/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-3/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-3/etc/plugin/re6st-connectivity.py: OK T-3/etc/plugin/re6st-connectivity.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
T-3:6tunnel-11080-{hash}-on-watch STOPPED T-3:6tunnel-11080-{hash-generic}-on-watch STOPPED
T-3:6tunnel-11443-{hash}-on-watch STOPPED T-3:6tunnel-11443-{hash-generic}-on-watch STOPPED
T-3:6tunnel-26011-{hash}-on-watch STOPPED T-3:6tunnel-26011-{hash-generic}-on-watch STOPPED
T-3:6tunnel-26012-{hash}-on-watch STOPPED T-3:6tunnel-26012-{hash-generic}-on-watch STOPPED
T-3:bootstrap-monitor STOPPED T-3:bootstrap-monitor STOPPED
T-3:certificate_authority-{hash}-on-watch STOPPED T-3:certificate_authority-{hash-generic}-on-watch STOPPED
T-3:crond-{hash}-on-watch STOPPED T-3:crond-{hash-generic}-on-watch STOPPED
T-3:expose-csr_id-{hash}-on-watch STOPPED T-3:expose-csr_id-{hash-generic}-on-watch STOPPED
T-3:frontend-caddy-safe-graceful STOPPED T-3:frontend-caddy-safe-graceful STOPPED
T-3:frontend_caddy-{hash}-on-watch STOPPED T-3:frontend_caddy-{hash-caddy-T-3}-on-watch STOPPED
T-3:kedifa-login-certificate-caucase-updater-on-watch STOPPED T-3:kedifa-login-certificate-caucase-updater-on-watch STOPPED
T-3:kedifa-updater-{hash}-on-watch STOPPED T-3:kedifa-updater-{hash-generic}-on-watch STOPPED
T-3:monitor-httpd-{hash}-on-watch STOPPED T-3:monitor-httpd-{hash-generic}-on-watch STOPPED
T-3:monitor-httpd-graceful STOPPED T-3:monitor-httpd-graceful STOPPED
T-3:trafficserver-{hash}-on-watch STOPPED T-3:trafficserver-{hash-generic}-on-watch STOPPED
T-3:trafficserver-reload STOPPED T-3:trafficserver-reload STOPPED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: OK T-2/etc/plugin/caddy_cached.py: OK
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -109,6 +115,7 @@ T-2/etc/plugin/check-_type-zope-virtualhostroot-https-port-error-log-last-hour.p ...@@ -109,6 +115,7 @@ T-2/etc/plugin/check-_type-zope-virtualhostroot-https-port-error-log-last-hour.p
T-2/etc/plugin/check-_url_https-url-error-log-last-day.py: OK T-2/etc/plugin/check-_url_https-url-error-log-last-day.py: OK
T-2/etc/plugin/check-_url_https-url-error-log-last-hour.py: OK T-2/etc/plugin/check-_url_https-url-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -29,6 +35,7 @@ T-2/etc/plugin/check-_virtualhostroot-http-port-unsafe-error-log-last-hour.py: O ...@@ -29,6 +35,7 @@ T-2/etc/plugin/check-_virtualhostroot-http-port-unsafe-error-log-last-hour.py: O
T-2/etc/plugin/check-_virtualhostroot-https-port-unsafe-error-log-last-day.py: OK T-2/etc/plugin/check-_virtualhostroot-https-port-unsafe-error-log-last-day.py: OK
T-2/etc/plugin/check-_virtualhostroot-https-port-unsafe-error-log-last-hour.py: OK T-2/etc/plugin/check-_virtualhostroot-https-port-unsafe-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: OK T-2/etc/plugin/caddy_cached.py: OK
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -109,6 +115,7 @@ T-2/etc/plugin/check-_type-zope-virtualhostroot-https-port-error-log-last-hour.p ...@@ -109,6 +115,7 @@ T-2/etc/plugin/check-_type-zope-virtualhostroot-https-port-error-log-last-hour.p
T-2/etc/plugin/check-_url_https-url-error-log-last-day.py: OK T-2/etc/plugin/check-_url_https-url-error-log-last-day.py: OK
T-2/etc/plugin/check-_url_https-url-error-log-last-hour.py: OK T-2/etc/plugin/check-_url_https-url-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -34,6 +40,7 @@ T-2/etc/plugin/check-_type-notebook-ssl_from_slave-error-log-last-hour.py: OK ...@@ -34,6 +40,7 @@ T-2/etc/plugin/check-_type-notebook-ssl_from_slave-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-notebook-ssl_from_slave_kedifa_overrides-error-log-last-day.py: OK T-2/etc/plugin/check-_type-notebook-ssl_from_slave_kedifa_overrides-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-notebook-ssl_from_slave_kedifa_overrides-error-log-last-hour.py: OK T-2/etc/plugin/check-_type-notebook-ssl_from_slave_kedifa_overrides-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR ...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-_ssl_from_master_kedifa_overrides_master_certificate-error-log-last-day.py: OK T-2/etc/plugin/check-_ssl_from_master_kedifa_overrides_master_certificate-error-log-last-day.py: OK
T-2/etc/plugin/check-_ssl_from_master_kedifa_overrides_master_certificate-error-log-last-hour.py: OK T-2/etc/plugin/check-_ssl_from_master_kedifa_overrides_master_certificate-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
T-0/etc/cron.d/logrotate
T-0/etc/cron.d/monitor-configurator
T-0/etc/cron.d/monitor-globalstate
T-0/etc/cron.d/monitor_collect
T-1/etc/cron.d/logrotate
T-1/etc/cron.d/monitor-configurator
T-1/etc/cron.d/monitor-globalstate
T-1/etc/cron.d/monitor_collect
T-2/etc/cron.d/logrotate
T-2/etc/cron.d/monitor-configurator
T-2/etc/cron.d/monitor-globalstate
T-2/etc/cron.d/monitor_collect
T-2/etc/cron.d/trafficserver-logrotate
\ No newline at end of file
T-0/var/run/monitor-httpd.pid T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid T-1/var/run/kedifa.pid
T-2/var/run/caddy_graceful_signature T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_validate_signature T-2/var/run/caddy_configuration_last_state
T-2/var/run/caddy_validate_signature.status T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid T-2/var/run/httpd.pid
T-2/var/run/monitor-httpd.pid T-2/var/run/monitor-httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid T-2/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK ...@@ -2,6 +2,12 @@ T-0/etc/plugin/buildout-T-0-status.py: OK
T-0/etc/plugin/check-free-disk-space.py: OK T-0/etc/plugin/check-free-disk-space.py: OK
T-0/etc/plugin/monitor-bootstrap-status.py: OK T-0/etc/plugin/monitor-bootstrap-status.py: OK
T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-1/etc/plugin/buildout-T-1-status.py: OK
T-1/etc/plugin/check-free-disk-space.py: OK
T-1/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-1/etc/plugin/kedifa-ip-port-listening.py: OK
T-1/etc/plugin/monitor-bootstrap-status.py: OK
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
T-2/etc/plugin/buildout-T-2-status.py: OK T-2/etc/plugin/buildout-T-2-status.py: OK
T-2/etc/plugin/caddy_cached.py: ERROR T-2/etc/plugin/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR ...@@ -12,6 +18,7 @@ T-2/etc/plugin/caddy_ssl_cached.py: ERROR
T-2/etc/plugin/check-_ssl_from_master-error-log-last-day.py: OK T-2/etc/plugin/check-_ssl_from_master-error-log-last-day.py: OK
T-2/etc/plugin/check-_ssl_from_master-error-log-last-hour.py: OK T-2/etc/plugin/check-_ssl_from_master-error-log-last-hour.py: OK
T-2/etc/plugin/check-free-disk-space.py: OK T-2/etc/plugin/check-free-disk-space.py: OK
T-2/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK T-2/etc/plugin/frontend-caddy-configuration-promise.py: OK
T-2/etc/plugin/monitor-bootstrap-status.py: OK T-2/etc/plugin/monitor-bootstrap-status.py: OK
T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK T-2/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
......
T-0:bootstrap-monitor EXITED T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash}-on-watch RUNNING T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED T-0:monitor-httpd-graceful EXITED
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash}-on-watch RUNNING T-1:caucased-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash}-on-watch RUNNING T-1:certificate_authority-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash}-on-watch RUNNING T-1:crond-{hash-generic}-on-watch RUNNING
T-1:expose-csr_id-{hash-generic}-on-watch RUNNING
T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED T-1:kedifa-reloader EXITED
T-2:6tunnel-11080-{hash}-on-watch RUNNING T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:6tunnel-11443-{hash}-on-watch RUNNING T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-26011-{hash}-on-watch RUNNING T-2:6tunnel-11080-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING T-2:6tunnel-11443-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26011-{hash-generic}-on-watch RUNNING
T-2:6tunnel-26012-{hash-generic}-on-watch RUNNING
T-2:bootstrap-monitor EXITED T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING T-2:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash}-on-watch RUNNING T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash}-on-watch RUNNING T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash}-on-watch RUNNING T-2:monitor-httpd-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-graceful EXITED T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash}-on-watch RUNNING T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING watchdog:watchdog RUNNING
\ No newline at end of file
...@@ -6,7 +6,7 @@ extends = ...@@ -6,7 +6,7 @@ extends =
../../component/openssl/buildout.cfg ../../component/openssl/buildout.cfg
../../component/jupyter/buildout.cfg ../../component/jupyter/buildout.cfg
../../stack/monitor/buildout.cfg ../../stack/monitor/buildout.cfg
parts = parts +=
slapos-cookbook slapos-cookbook
jupyter jupyter
jupyter-notebook-initialized-scripts jupyter-notebook-initialized-scripts
......
Tests for Jupyter software release
##############################################################################
#
# Copyright (c) 2019 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from setuptools import setup, find_packages
version = '0.0.1.dev0'
name = 'slapos.test.jupyter'
long_description = open("README.md").read()
setup(name=name,
version=version,
description="Test for SlapOS' Jupter",
long_description=long_description,
long_description_content_type='text/markdown',
maintainer="Nexedi",
maintainer_email="info@nexedi.com",
url="https://lab.nexedi.com/nexedi/slapos",
packages=find_packages(),
install_requires=[
'slapos.core',
'slapos.libnetworkcache',
'erp5.util',
'requests',
],
zip_safe=True,
test_suite='test',
)
##############################################################################
#
# Copyright (c) 2019 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import utils
import httplib
import json
import os
import requests
# for development: debugging logs and install Ctrl+C handler
if os.environ.get('SLAPOS_TEST_DEBUG'):
import logging
logging.basicConfig(level=logging.DEBUG)
import unittest
unittest.installHandler()
class TestJupyter(utils.SlapOSInstanceTestCase):
@classmethod
def getSoftwareURLList(cls):
return (os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'software.cfg')),)
def test(self):
parameter_dict = self.computer_partition.getConnectionParameterDict()
self.assertTrue('_' in parameter_dict)
try:
connection_dict = json.loads(parameter_dict['_'])
except Exception as e:
self.fail("Can't parse json in %s, error %s" % (parameter_dict['_'], e))
ip = os.environ['SLAPOS_TEST_IPV6']
self.assertEqual(
{
'jupyter-classic-url': 'https://[%s]:8888/tree' % (ip,),
'jupyterlab-url': 'https://[%s]:8888/lab' % (ip,),
'url': 'https://[%s]:8888/tree' % (ip,)
},
connection_dict
)
result = requests.get(
connection_dict['url'], verify=False, allow_redirects=False)
self.assertEqual(
[httplib.FOUND, True, '/login?next=%2Ftree'],
[result.status_code, result.is_redirect, result.headers['Location']]
)
result = requests.get(
connection_dict['jupyter-classic-url'],
verify=False, allow_redirects=False)
self.assertEqual(
[httplib.FOUND, True, '/login?next=%2Ftree'],
[result.status_code, result.is_redirect, result.headers['Location']]
)
result = requests.get(
connection_dict['jupyterlab-url'],
verify=False, allow_redirects=False)
self.assertEqual(
[httplib.FOUND, True, '/login?next=%2Flab'],
[result.status_code, result.is_redirect, result.headers['Location']]
)
##############################################################################
#
# Copyright (c) 2018 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import unittest
import os
import socket
from contextlib import closing
import logging
import StringIO
import xmlrpclib
import supervisor.xmlrpc
from erp5.util.testnode.SlapOSControler import SlapOSControler
from erp5.util.testnode.ProcessManager import ProcessManager
# Utility functions
def findFreeTCPPort(ip=''):
"""Find a free TCP port to listen to.
"""
family = socket.AF_INET6 if ':' in ip else socket.AF_INET
with closing(socket.socket(family, socket.SOCK_STREAM)) as s:
s.bind((ip, 0))
return s.getsockname()[1]
# TODO:
# - allow requesting multiple instances ?
class SlapOSInstanceTestCase(unittest.TestCase):
"""Install one slapos instance.
This test case install software(s) and request one instance during
`setUpClass` and destroy the instance during `tearDownClass`.
Software Release URL, Instance Software Type and Instance Parameters can be
defined on the class.
All tests from the test class will run with the same instance.
The following class attributes are available:
* `computer_partition`: the computer partition instance, implementing
`slapos.slap.interface.slap.IComputerPartition`.
* `computer_partition_root_path`: the path of the instance root directory.
"""
# Methods to be defined by subclasses.
@classmethod
def getSoftwareURLList(cls):
"""Return URL of software releases to install.
To be defined by subclasses.
"""
raise NotImplementedError()
@classmethod
def getInstanceParameterDict(cls):
"""Return instance parameters
To be defined by subclasses if they need to request instance with specific
parameters.
"""
return {}
@classmethod
def getInstanceSoftwareType(cls):
"""Return software type for instance, default "default"
To be defined by subclasses if they need to request instance with specific
software type.
"""
return "default"
# Utility methods.
def getSupervisorRPCServer(self):
"""Returns a XML-RPC connection to the supervisor used by slapos node
Refer to http://supervisord.org/api.html for details of available methods.
"""
# xmlrpc over unix socket https://stackoverflow.com/a/11746051/7294664
return xmlrpclib.ServerProxy(
'http://slapos-supervisor',
transport=supervisor.xmlrpc.SupervisorTransport(
None,
None,
# XXX hardcoded socket path
serverurl="unix://{working_directory}/inst/supervisord.socket".format(
**self.config)))
# Unittest methods
@classmethod
def setUpClass(cls):
"""Setup the class, build software and request an instance.
If you have to override this method, do not forget to call this method on
parent class.
"""
try:
cls.setUpWorkingDirectory()
cls.setUpConfig()
cls.setUpSlapOSController()
cls.runSoftwareRelease()
# XXX instead of "runSoftwareRelease", it would be better to be closer to slapos usage:
# cls.supplySoftwares()
# cls.installSoftwares()
cls.runComputerPartition()
# XXX instead of "runComputerPartition", it would be better to be closer to slapos usage:
# cls.requestInstances()
# cls.createInstances()
# cls.requestInstances()
except Exception:
cls.stopSlapOSProcesses()
raise
@classmethod
def tearDownClass(cls):
"""Tear down class, stop the processes and destroy instance.
"""
cls.stopSlapOSProcesses()
# Implementation
@classmethod
def stopSlapOSProcesses(cls):
if hasattr(cls, '_process_manager'):
cls._process_manager.killPreviousRun()
@classmethod
def setUpWorkingDirectory(cls):
"""Initialise the directories"""
cls.working_directory = os.environ.get(
'SLAPOS_TEST_WORKING_DIR',
os.path.join(os.path.dirname(__file__), '.slapos'))
# To prevent error: Cannot open an HTTP server: socket.error reported
# AF_UNIX path too long This `working_directory` should not be too deep.
# Socket path is 108 char max on linux
# https://github.com/torvalds/linux/blob/3848ec5/net/unix/af_unix.c#L234-L238
# Supervisord socket name contains the pid number, which is why we add
# .xxxxxxx in this check.
if len(cls.working_directory + '/inst/supervisord.socket.xxxxxxx') > 108:
raise RuntimeError('working directory ( {} ) is too deep, try setting '
'SLAPOS_TEST_WORKING_DIR'.format(cls.working_directory))
if not os.path.exists(cls.working_directory):
os.mkdir(cls.working_directory)
@classmethod
def setUpConfig(cls):
"""Create slapos configuration"""
cls.config = {
"working_directory": cls.working_directory,
"slapos_directory": cls.working_directory,
"log_directory": cls.working_directory,
"computer_id": 'slapos.test', # XXX
'proxy_database': os.path.join(cls.working_directory, 'proxy.db'),
'partition_reference': 'T', # minimise path length, see https://github.com/apache/trafficserver/issues/2421
# "proper" slapos command must be in $PATH
'slapos_binary': 'slapos',
'node_quantity': '3',
}
# Some tests are expecting that local IP is not set to 127.0.0.1
ipv4_address = os.environ.get('SLAPOS_TEST_IPV4', '127.0.1.1')
ipv6_address = os.environ['SLAPOS_TEST_IPV6']
cls.config['proxy_host'] = cls.config['ipv4_address'] = ipv4_address
cls.config['ipv6_address'] = ipv6_address
cls.config['proxy_port'] = findFreeTCPPort(ipv4_address)
cls.config['master_url'] = 'http://{proxy_host}:{proxy_port}'.format(
**cls.config)
@classmethod
def setUpSlapOSController(cls):
"""Create the a "slapos controller" and supply softwares from `getSoftwareURLList`.
This is equivalent to:
slapos proxy start
for sr in getSoftwareURLList; do
slapos supply $SR $COMP
done
"""
cls._process_manager = ProcessManager()
# XXX this code is copied from testnode code
cls.slapos_controler = SlapOSControler(
cls.working_directory,
cls.config
)
slapproxy_log = os.path.join(cls.config['log_directory'], 'slapproxy.log')
logger = logging.getLogger(__name__)
logger.debug('Configured slapproxy log to %r', slapproxy_log)
cls.software_url_list = cls.getSoftwareURLList()
cls.slapos_controler.initializeSlapOSControler(
slapproxy_log=slapproxy_log,
process_manager=cls._process_manager,
reset_software=False,
software_path_list=cls.software_url_list)
# XXX we should check *earlier* if that pidfile exist and if supervisord
# process still running, because if developer started supervisord (or bugs?)
# then another supervisord will start and starting services a second time
# will fail.
cls._process_manager.supervisord_pid_file = os.path.join(
cls.slapos_controler.instance_root, 'var', 'run', 'supervisord.pid')
@classmethod
def runSoftwareRelease(cls):
"""Run all the software releases that were supplied before.
This is the equivalent of `slapos node software`.
The tests will be marked file if software building fail.
"""
logger = logging.getLogger()
logger.level = logging.DEBUG
stream = StringIO.StringIO()
stream_handler = logging.StreamHandler(stream)
logger.addHandler(stream_handler)
try:
cls.software_status_dict = cls.slapos_controler.runSoftwareRelease(
cls.config, environment=os.environ)
stream.seek(0)
stream.flush()
message = ''.join(stream.readlines()[-100:])
assert cls.software_status_dict['status_code'] == 0, message
finally:
logger.removeHandler(stream_handler)
del stream
@classmethod
def runComputerPartition(cls, max_quantity=None):
"""Instanciate the software.
This is the equivalent of doing:
slapos request --type=getInstanceSoftwareType --parameters=getInstanceParameterDict
slapos node instance
and return the slapos request instance parameters.
This can be called by tests to simulate re-request with different parameters.
"""
run_cp_kw = {}
if max_quantity is not None:
run_cp_kw['max_quantity'] = max_quantity
logger = logging.getLogger()
logger.level = logging.DEBUG
stream = StringIO.StringIO()
stream_handler = logging.StreamHandler(stream)
logger.addHandler(stream_handler)
if cls.getInstanceSoftwareType() != 'default':
raise NotImplementedError
instance_parameter_dict = cls.getInstanceParameterDict()
try:
cls.instance_status_dict = cls.slapos_controler.runComputerPartition(
cls.config,
cluster_configuration=instance_parameter_dict,
environment=os.environ,
**run_cp_kw)
stream.seek(0)
stream.flush()
message = ''.join(stream.readlines()[-100:])
assert cls.instance_status_dict['status_code'] == 0, message
finally:
logger.removeHandler(stream_handler)
del stream
# FIXME: similar to test node, only one (root) partition is really
# supported for now.
computer_partition_list = []
for i in range(len(cls.software_url_list)):
computer_partition_list.append(
cls.slapos_controler.slap.registerOpenOrder().request(
cls.software_url_list[i],
# This is how testnode's SlapOSControler name created partitions
partition_reference='testing partition {i}'.format(
i=i, **cls.config),
partition_parameter_kw=instance_parameter_dict))
# expose some class attributes so that tests can use them:
# the ComputerPartition instances, to getInstanceParameterDict
cls.computer_partition = computer_partition_list[0]
# the path of the instance on the filesystem, for low level inspection
cls.computer_partition_root_path = os.path.join(
cls.config['working_directory'],
'inst',
cls.computer_partition.getId())
...@@ -304,8 +304,7 @@ ...@@ -304,8 +304,7 @@
"description": "Specifies the maximum number of CPUs.", "description": "Specifies the maximum number of CPUs.",
"type": "integer", "type": "integer",
"default": 24, "default": 24,
"minimum": 1, "minimum": 1
"maximum": 64
}, },
"numa": { "numa": {
"title": "Simulate a multi node NUMA system.", "title": "Simulate a multi node NUMA system.",
...@@ -441,8 +440,7 @@ ...@@ -441,8 +440,7 @@
"description": "Number of disk overwrite iterations with random data. Default is 1. WARNING: Increase this value will slow down partition destruction and increase IO.", "description": "Number of disk overwrite iterations with random data. Default is 1. WARNING: Increase this value will slow down partition destruction and increase IO.",
"type": "integer", "type": "integer",
"default": 1, "default": 1,
"minimum": 1, "minimum": 1
"maximum": 5
}, },
"use-tap": { "use-tap": {
"title": "Enable QEMU TAP network interface", "title": "Enable QEMU TAP network interface",
......
...@@ -44,8 +44,7 @@ ...@@ -44,8 +44,7 @@
"description": "Disk size, in GB.", "description": "Disk size, in GB.",
"type": "integer", "type": "integer",
"default": 10, "default": 10,
"minimum": 1, "minimum": 1
"maximum": 1000
}, },
"disk-type": { "disk-type": {
"title": "Disk type", "title": "Disk type",
...@@ -110,8 +109,7 @@ ...@@ -110,8 +109,7 @@
"description": "Specifies the maximum number of CPUs.", "description": "Specifies the maximum number of CPUs.",
"type": "integer", "type": "integer",
"default": 24, "default": 24,
"minimum": 1, "minimum": 1
"maximum": 64
}, },
"numa": { "numa": {
"title": "Simulate a multi node NUMA system.", "title": "Simulate a multi node NUMA system.",
...@@ -233,7 +231,6 @@ ...@@ -233,7 +231,6 @@
"description": "Specify the size of additional disk to create for virtual machine in data folder of SlapOS Node. Requires instance_storage_home to be configured on SlapOS Node.", "description": "Specify the size of additional disk to create for virtual machine in data folder of SlapOS Node. Requires instance_storage_home to be configured on SlapOS Node.",
"type": "integer", "type": "integer",
"minimum": 10, "minimum": 10,
"maximum": 1000,
"default": 20 "default": 20
}, },
"external-disk-format": { "external-disk-format": {
...@@ -261,8 +258,7 @@ ...@@ -261,8 +258,7 @@
"description": "Number of disk overwrite iterations with random data. Default is 1. WARNING: Increase this value will slow down partition destruction and increase IO.", "description": "Number of disk overwrite iterations with random data. Default is 1. WARNING: Increase this value will slow down partition destruction and increase IO.",
"type": "integer", "type": "integer",
"default": 1, "default": 1,
"minimum": 1, "minimum": 1
"maximum": 5
}, },
"use-tap": { "use-tap": {
"title": "Use QEMU TAP network interface", "title": "Use QEMU TAP network interface",
......
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = 72c3b8bfb061a73e7a225c222bb598b4 md5sum = 8b3d678de7fd5333793bc3f4c770b53d
...@@ -28,7 +28,7 @@ bin = $${buildout:directory}/bin ...@@ -28,7 +28,7 @@ bin = $${buildout:directory}/bin
working-dir = $${buildout:directory}/tmp working-dir = $${buildout:directory}/tmp
[test-list] [test-list]
path_list = ${slapos.test.caddy-frontend-setup:setup},${slapos.test.erp5-setup:setup},${slapos.test.slapos-master-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.helloworld-setup:setup} path_list = ${slapos.test.caddy-frontend-setup:setup},${slapos.test.erp5-setup:setup},${slapos.test.slapos-master-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.helloworld-setup:setup},${slapos.test.jupyter-setup:setup}
[slapos-test-runner] [slapos-test-runner]
recipe = slapos.cookbook:wrapper recipe = slapos.cookbook:wrapper
......
...@@ -8,6 +8,7 @@ extends = ...@@ -8,6 +8,7 @@ extends =
../../component/python-cryptography/buildout.cfg ../../component/python-cryptography/buildout.cfg
../../component/python-pynacl/buildout.cfg ../../component/python-pynacl/buildout.cfg
../../component/quic_client-bin/buildout.cfg ../../component/quic_client-bin/buildout.cfg
../../component/python-backports-lzma/buildout.cfg
../../stack/slapos.cfg ../../stack/slapos.cfg
...@@ -81,6 +82,11 @@ setup = ${slapos-repository:location}/software/slaprunner/test/ ...@@ -81,6 +82,11 @@ setup = ${slapos-repository:location}/software/slaprunner/test/
egg = slapos.test.helloworld egg = slapos.test.helloworld
setup = ${slapos-repository:location}/software/helloworld/test/ setup = ${slapos-repository:location}/software/helloworld/test/
[slapos.test.jupyter-setup]
<= setup-develop-egg
egg = slapos.test.jupyter
setup = ${slapos-repository:location}/software/jupyter/test/
[eggs] [eggs]
recipe = zc.recipe.egg recipe = zc.recipe.egg
eggs = eggs =
...@@ -102,6 +108,8 @@ eggs = ...@@ -102,6 +108,8 @@ eggs =
${slapos.test.re6stnet-setup:egg} ${slapos.test.re6stnet-setup:egg}
${slapos.test.seleniumserver-setup:egg} ${slapos.test.seleniumserver-setup:egg}
${slapos.test.slaprunner-setup:egg} ${slapos.test.slaprunner-setup:egg}
${slapos.test.jupyter-setup:egg}
${backports.lzma:egg}
entry-points = entry-points =
runTestSuite=erp5.util.testsuite:runTestSuite runTestSuite=erp5.util.testsuite:runTestSuite
...@@ -165,3 +173,5 @@ Django = 1.11 ...@@ -165,3 +173,5 @@ Django = 1.11
# Required by: # Required by:
# selenium==3.141.0 # selenium==3.141.0
urllib3 = 1.24.1 urllib3 = 1.24.1
backports.lzma = 0.0.13
...@@ -66,7 +66,7 @@ md5sum = 0969fbb25b05c02ef3c2d437b2f4e1a0 ...@@ -66,7 +66,7 @@ md5sum = 0969fbb25b05c02ef3c2d437b2f4e1a0
[template-run-zelenium] [template-run-zelenium]
filename = run-zelenium-test.py.in filename = run-zelenium-test.py.in
md5sum = 37f94ecf60876bbe30877773dfe9828b md5sum = c64f35f825200fe35328641b2b8e0fdd
[template] [template]
filename = instance.cfg.in filename = instance.cfg.in
...@@ -86,7 +86,7 @@ md5sum = d400c3d449ce437a0ded77ee3d5c5df2 ...@@ -86,7 +86,7 @@ md5sum = d400c3d449ce437a0ded77ee3d5c5df2
[template-zope] [template-zope]
filename = instance-zope.cfg.in filename = instance-zope.cfg.in
md5sum = 3a6c7dec898abc7d1506957154ef566e md5sum = 5cbfcc02ffe6c2ae8cdf412134addd8f
[template-balancer] [template-balancer]
filename = instance-balancer.cfg.in filename = instance-balancer.cfg.in
......
...@@ -391,6 +391,10 @@ wrapper-path = ${buildout:bin-directory}/${:_buildout_section_name_} ...@@ -391,6 +391,10 @@ wrapper-path = ${buildout:bin-directory}/${:_buildout_section_name_}
[{{ section("wait_activities") }}] [{{ section("wait_activities") }}]
<= watch_activities <= watch_activities
{% if test_runner_enabled and test_runner_node_count -%}
{% for _ in range(test_runner_node_count) %}
{% do test_runner_address_list.append((ipv4, next_port())) %}
{% endfor %}
{% if saucelabs_dict -%} {% if saucelabs_dict -%}
[test-zelenium-runner-parameter] [test-zelenium-runner-parameter]
...@@ -411,11 +415,6 @@ context = ...@@ -411,11 +415,6 @@ context =
key password test-zelenium-runner-parameter:password key password test-zelenium-runner-parameter:password
key bin_path test-zelenium-runner-parameter:bin-path key bin_path test-zelenium-runner-parameter:bin-path
{% else -%} {% else -%}
{% if test_runner_enabled and test_runner_node_count -%}
{% for _ in range(test_runner_node_count) %}
{% do test_runner_address_list.append((ipv4, next_port())) %}
{% endfor %}
[{{ section('run-unit-test-userhosts-wrapper') }}] [{{ section('run-unit-test-userhosts-wrapper') }}]
<= userhosts-wrapper-base <= userhosts-wrapper-base
wrapped-command-line = ${runUnitTest:wrapper-path} wrapped-command-line = ${runUnitTest:wrapper-path}
......
...@@ -12,6 +12,7 @@ from selenium.webdriver.support.ui import WebDriverWait ...@@ -12,6 +12,7 @@ from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support import expected_conditions as EC
import time import time
from urllib import urlopen from urllib import urlopen
import json
def main(): def main():
parser = argparse.ArgumentParser(description='Run a test suite.') parser = argparse.ArgumentParser(description='Run a test suite.')
...@@ -110,20 +111,29 @@ def main(): ...@@ -110,20 +111,29 @@ def main():
"&__ac_password=%s" % (args.remote_access_url, {{ repr(user) }}, {{ repr(password) }}) "&__ac_password=%s" % (args.remote_access_url, {{ repr(user) }}, {{ repr(password) }})
# Wait until all activities are finished... # Wait until all activities are finished...
wait_url = args.remote_access_url + '/erp5/Zuite_waitForActivities' wait_url = "%s/erp5/ActivityTool_getSqlStatisticList" \
"?__ac_name=%s" \
"&__ac_password=%s" % (args.remote_access_url, {{ repr(user) }}, {{ repr(password) }})
while 1: while 1:
try: try:
response = urlopen(wait_url) response = urlopen(wait_url)
try: try:
if response.code == 500: if response.code == 500:
sys.exit(-1) sys.exit(-1)
if response.code == 200 and response.read() == 'Done.': if response.code == 200:
break static_dict = json.loads(response.read())
activity_list = []
for _, value in static_dict.iteritems():
activity_list += value['line_list']
if len(activity_list) == 0:
break
elif all(x['node'] == -2 for x in activity_list):
sys.exit(-1)
finally: finally:
response.close() response.close()
except Exception: except Exception:
traceback.print_exc() traceback.print_exc()
time.sleep(10) time.sleep(600)
tool = taskdistribution.TaskDistributor(portal_url=args.master_url) tool = taskdistribution.TaskDistributor(portal_url=args.master_url)
browser = webdriver.Remote(appium_url, capabilities) browser = webdriver.Remote(appium_url, capabilities)
......
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