...
 
Commits (37)
Showing 105 changed files with 450 additions and 810 deletions
......@@ -98,7 +98,7 @@ configure-options=
--with-http_v2_module
--with-http_gzip_static_module
--with-ld-opt="-L ${zlib:location}/lib -L ${openssl-1.0:location}/lib -L ${pcre:location}/lib -Wl,-rpath=${pcre:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${openssl-1.0:location}/lib"
--with-cc-opt="-I ${pcre:location}/include -I ${openssl-1.0:location}/include -I ${zlib:location}/include"
--with-cc-opt="-I ${pcre:location}/include -I ${openssl-1.0:location}/include -I ${zlib:location}/include -Wno-error"
--add-module=${nginx-push-stream-module:location}
[nginx-push-stream-output]
......
......@@ -7,5 +7,5 @@ parts =
[perl-URI]
<= perl-CPAN-package
module = URI/URI
version = 1.72
md5sum = cd56d81ed429efaa97e7f3ff08851b48
version = 1.76
md5sum = c236e0142adecc1b1104da664bc43a79
......@@ -43,7 +43,7 @@ dir = %(working_directory)s # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
......
......@@ -26,6 +26,7 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import errno
import io
import logging
import os
......@@ -33,6 +34,7 @@ import sys
import inspect
import re
import shutil
import stat
import urllib
import urlparse
......@@ -92,9 +94,27 @@ class GenericBaseRecipe(object):
"""Create a file with content
The parent directory should exists, else it would raise IOError"""
with open(name, 'w') as fileobject:
fileobject.write(content)
os.chmod(fileobject.name, mode)
if not isinstance(content, bytes):
content = content.encode('utf-8')
# Try to reuse existing file. This is particularly
# important to avoid excessive IO during update.
try:
with open(name, 'rb') as f:
if f.read(len(content)+1) == content:
if None is not mode != stat.S_IMODE(os.fstat(f.fileno()).st_mode):
os.fchmod(f.fileno(), mode)
return os.path.abspath(name)
except (IOError, OSError) as e:
pass
try:
os.unlink(name)
except OSError as e:
if e.errno != errno.ENOENT:
raise
with open(name, 'wb') as f:
if mode is not None:
os.fchmod(f.fileno(), mode)
f.write(content)
return os.path.abspath(name)
def createExecutable(self, name, content, mode=0700):
......
......@@ -24,18 +24,17 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import json
import re
import logging, os
import zc.buildout.easy_install
from pprint import pformat
from slapos.recipe.librecipe import GenericBaseRecipe
script_template = '''# This script is auto generated by slapgrid, do not edit!
import json
import sys
sys.path[0:0] = %(path)s
extra_config_dict = json.loads("""%(config)s""", strict=False)
extra_config_dict = %(config)s
# We want to cleanup all imported modules from slapos namespace, because
# they will conflict with slapos.core.
......@@ -69,12 +68,9 @@ class Recipe(GenericBaseRecipe):
"""Return a mapping where to store generated working sets.
from https://github.com/buildout/buildout/blob/master/zc.recipe.egg_/src/zc/recipe/egg/egg.py#L170
"""
cache_storage = getattr(
self.buildout,
self._WORKING_SET_CACHE_NAME,
None
)
if cache_storage is None:
try:
return getattr(self.buildout, self._WORKING_SET_CACHE_NAME)
except AttributeError:
cache_storage = {}
try:
setattr(
......@@ -83,29 +79,29 @@ class Recipe(GenericBaseRecipe):
cache_storage
)
except AttributeError:
if type(self.buildout) == type({}):
# failed to set attribute in test mode, cache not used
pass
else:
if not isinstance(self.buildout, dict):
raise
# failed to set attribute in test mode, cache not used
return cache_storage
def install(self):
develop_eggs_dir = self.options['develop-eggs-directory']
eggs_dir = self.options['eggs-directory']
egg_list = [
egg_list = tuple(
egg.strip()
for egg in self.options['eggs'].split('\n')
for egg in self.options['eggs'].splitlines()
if egg.strip()
]
)
cache_storage = self._get_cache_storage()
cache_key = (
tuple(egg_list),
egg_list,
eggs_dir,
develop_eggs_dir,
)
if cache_key not in cache_storage:
try:
working_set = cache_storage[cache_key]
except KeyError:
if develop_eggs_dir and eggs_dir:
working_set = zc.buildout.easy_install.working_set(
egg_list,
......@@ -114,8 +110,6 @@ class Recipe(GenericBaseRecipe):
cache_storage[cache_key] = working_set
else:
working_set = set()
else:
working_set = cache_storage[cache_key]
regex = r"^[\w_\-\.\s]+$"
import_path = self.options.get('import', '').strip()
......@@ -129,24 +123,14 @@ class Recipe(GenericBaseRecipe):
if not re.search(regex, content_string):
raise ValueError("Promise content %r is not valid" % content_string)
output = self.options['output']
mode = self.options.get('mode', '0644')
path_list = []
for dist in working_set:
path_list.append(dist.location)
config_dict = dict()
for key in self.options:
if key.startswith('config-'):
config_dict[key[7:]] = self.options[key]
option_dict = dict(path=json.dumps(path_list, indent=2),
content=content_string,
config=json.dumps(config_dict, indent=2, sort_keys=True))
with open(output, 'w') as f:
f.write(script_template % option_dict)
config_dict = {key[7:]: self.options[key]
for key in self.options
if key.startswith('config-')}
os.chmod(output, int(mode, 8))
return (output,)
return self.createFile(self.options['output'], script_template % {
'path': pformat([dist.location for dist in working_set], indent=2),
'content': content_string,
'config': pformat(config_dict, indent=2),
}, int(self.options.get('mode', '0644'), 8)),
update = install
Generally things to be done with ``caddy-frontend``:
* README: cleanup the documentation, explain various specifics
* check the whole frontend slave snippet with ``caddy -validate`` during buildout run, and reject if does not pass validation
* (new) ``type:websocket`` slave
* ``type:eventsource``:
* **Jérome Perrin**: *For event source, if I understand https://github.com/mholt/caddy/issues/1355 correctly, we could use caddy as a proxy in front of nginx-push-stream . If we have a "central shared" caddy instance, can it handle keeping connections opens for many clients ?*
* ``check-error-on-caddy-log`` like ``check-error-on-apache-log``
* move out ``test/utils.py`` and use it from shared python distribution
* reduce the time of configuration validation (in ``instance-apache-frontend.cfg.in`` sections ``[configtest]``, ``[caddy-configuration]``), as it is not scalable on frontend with 2000+ slaves (takes few minutes instead of few, < 5, seconds), issue posted `upstream <https://github.com/mholt/caddy/issues/2220>`_
* drop ``6tunnel`` and use ``bind`` in Caddy configuration, as soon as multiple binds will be possible, tracked in upstream `bind: support multiple values <https://github.com/mholt/caddy/pull/2128>`_ and `ipv6: does not bind on ipv4 and ipv6 for sites that resolve to both <https://github.com/mholt/caddy/issues/864>`_
* use caddy-frontend in `standalone style playbooks <https://lab.nexedi.com/nexedi/slapos.package/tree/master/playbook/roles/standalone-shared>`_
* in ``templates/apache-custom-slave-list.cfg.in`` avoid repetetive ``part_list.append`` and use macro like in ERP5 SR (cf `Vincent's comment <https://lab.nexedi.com/nexedi/slapos/merge_requests/373#note_64362>`_)
* **Jérome Perrin**: consider privacy implications/GDPR compliance of https://caddyserver.com/docs/telemetry and decide if we should leave it enabled.
......@@ -22,15 +22,15 @@ md5sum = c801b7f9f11f0965677c22e6bbe9281b
[template-apache-frontend]
filename = instance-apache-frontend.cfg.in
md5sum = d2dda14597c061960f0b9d38ec0d8313
md5sum = 72e8ff0773fd0325dcbe994786156570
[template-apache-replicate]
[template-caddy-replicate]
filename = instance-apache-replicate.cfg.in
md5sum = ef06c04a5aa33b103dc1d25d0dfe8217
md5sum = 99ec567c429ff82571d08818eaaed390
[template-slave-list]
filename = templates/apache-custom-slave-list.cfg.in
md5sum = a473ded24aed999abed3d79a08bb09a6
md5sum = d2e0132dded2f65e3590c72a154f6dd6
[template-slave-configuration]
filename = templates/custom-virtualhost.conf.in
......@@ -58,7 +58,7 @@ md5sum = 0c5ef7f26a142c3ab53e835d2caa698d
[template-cached-slave-virtualhost]
filename = templates/cached-virtualhost.conf.in
md5sum = 907372828d1ceb05c41240078196f439
md5sum = 6ca9a3251830d602cf25e0a0389fc74b
[template-log-access]
filename = templates/template-log-access.conf.in
......@@ -74,7 +74,7 @@ md5sum = 8cde04bfd0c0e9bd56744b988275cfd8
[template-trafficserver-records-config]
filename = templates/trafficserver/records.config.jinja2
md5sum = 15cbdba7ab7fe3c3d7c26c1718e47bbd
md5sum = 5ef0ebc37437ada7cc176e663da5f36c
[template-trafficserver-storage-config]
filename = templates/trafficserver/storage.config.jinja2
......
......@@ -244,6 +244,7 @@ extra-context =
key autocert caddy-directory:autocert
key master_certificate caddy-configuration:master-certificate
key caddy_log_directory caddy-directory:slave-log
key caddy_log_cache_direct_directory caddy-directory:slave-log-cache-direct
key local_ipv4 :local_ipv4
key local_ipv6 :local_ipv6
key global_ipv6 slap-network-information:global-ipv6
......@@ -361,6 +362,7 @@ slave-with-cache-configuration = ${directory:etc}/caddy-slave-with-cache-conf.d/
cache = ${directory:var}/cache
mod-ssl = ${:cache}/httpd_mod_ssl
slave-log = ${directory:log}/httpd
slave-log-cache-direct = ${directory:log}/httpd-cache-direct
autocert = ${directory:srv}/autocert
master-autocert-dir = ${:autocert}/master-autocert
custom-ssl-directory = ${:slave-configuration}/ssl
......
......@@ -72,6 +72,7 @@ context =
{% set authorized_slave_string_list = slapparameter_dict.pop('-frontend-authorized-slave-string', '').split() %}
{% set authorized_slave_list = [] %}
{% set rejected_slave_dict = {} %}
{% set rejected_slave_title_dict = {} %}
{% set warning_slave_dict = {} %}
{% set used_host_list = [] %}
{% set unauthorized_message = 'slave not authorized' %}
......@@ -175,6 +176,7 @@ context =
{% do authorized_slave_list.append(slave) %}
{% else %}
{% do rejected_slave_dict.__setitem__(slave.get('slave_reference'), slave_error_list) %}
{% do rejected_slave_title_dict.__setitem__(slave.get('slave_title'), slave_error_list) %}
{% endif %}
{% if len(slave_warning_list) > 0 %}
{% do warning_slave_dict.__setitem__(slave.get('slave_reference'), slave_warning_list) %}
......@@ -239,7 +241,8 @@ domain = {{ slapparameter_dict.get('domain') }}
slave-amount = {{ slave_instance_list | length }}
accepted-slave-amount = {{ authorized_slave_list | length }}
rejected-slave-amount = {{ rejected_slave_dict | length }}
rejected-slave-dict = {{ dumps(json_module.dumps(rejected_slave_dict)) }}
rejected-slave-dict = {{ dumps(json_module.dumps(rejected_slave_title_dict)) }}
rejected-slave-promise-url = ${rejected-slave-promise:config-url}
master-key-upload-url = ${request-kedifa:connection-master-key-upload-url}
master-key-generate-auth-url = ${request-kedifa:connection-master-key-generate-auth-url}
kedifa-caucase-url = ${request-kedifa:connection-caucase-url}
......@@ -463,6 +466,105 @@ update-command = ${:command}
{% endfor %}
{% endif %}
[rejected-slave-json]
recipe = slapos.recipe.template:jinja2
filename = rejected-slave.json
directory = ${directory:promise-output}
rendered = ${:directory}/${:filename}
template = {{ parameter_dict['template_empty'] }}
{% if rejected_slave_title_dict %}
content = {{ dumps(json_module.dumps(rejected_slave_title_dict, indent=2)) }}
{% else %}
content =
{% endif %}
context =
key content :content
[directory]
plugin = ${:etc}/plugin
service = ${:etc}/service
promise-output = ${:srv}/promise-output
[rejected-slave-publish-configuration]
ip = {{ instance_parameter['ipv6-random'] }}
port = 14455
[rejected-slave-publish]
directory = ${rejected-slave-json:directory}
url = https://${rejected-slave-password:user}:${rejected-slave-password:passwd}@[${rejected-slave-publish-configuration:ip}]:${rejected-slave-publish-configuration:port}/${rejected-slave-json:filename}
recipe = slapos.cookbook:wrapper
command-line = {{ parameter_dict['caddy'] }}
-conf ${rejected-slave-template:rendered}
-log stderr
-http2=true
-disable-http-challenge
-disable-tls-alpn-challenge
-root ${:directory}
wrapper-path = ${directory:service}/rejected-slave-publish
hash-files =
${buildout:directory}/software_release/buildout.cfg
${rejected-slave-template:rendered}
${rejected-slave-certificate:certificate}
[rejected-slave-certificate]
recipe = plone.recipe.command
certificate = ${directory:etc}/rejected-slave.pem
key = ${:certificate}
stop-on-error = True
update-command = ${:command}
command =
[ -f ${:certificate} ] && find ${:certificate} -type f -mtime +3 -delete
if ! [ -f ${:certificate} ] ; then
openssl req -new -newkey rsa:2048 -sha256 -subj \
"/CN=${rejected-slave-publish-configuration:ip}" \
-days 5 -nodes -x509 -keyout ${:certificate} -out ${:certificate}
fi
[rejected-slave-password]
recipe = slapos.cookbook:generate.password
storage-path = ${directory:etc}/.rejected-slave.passwd
bytes = 8
user = admin
[rejected-slave-template]
recipe = slapos.recipe.template:jinja2
template = inline:
https://:${rejected-slave-publish-configuration:port}/ {
basicauth / ${rejected-slave-password:user} ${rejected-slave-password:passwd}
tls ${rejected-slave-certificate:certificate} ${rejected-slave-certificate:key}
bind ${rejected-slave-publish-configuration:ip}
log stderr
errors stderr
}
rendered = ${directory:etc}/Caddyfile-rejected-slave
[promise-plugin-base]
recipe = slapos.cookbook:promise.plugin
eggs =
slapos.toolbox
content =
from slapos.promise.plugin.${:module} import RunPromise
output = ${directory:plugin}/${:name}
[promise-rejected-slave-publish-ip-port]
<= promise-plugin-base
module = check_port_listening
name = rejected-slave-publish-ip-port-listening.py
config-hostname = ${rejected-slave-publish-configuration:ip}
config-port = ${rejected-slave-publish-configuration:port}
[rejected-slave-promise]
<= promise-plugin-base
module = check_port_listening
module = check_file_state
name = rejected-slave.py
config-filename = ${rejected-slave-json:rendered}
config-state = empty
config-url = ${rejected-slave-publish:url}
[buildout]
extends =
{{ common_profile }}
......@@ -472,6 +574,8 @@ parts =
publish-slave-information
publish-information
request-kedifa
rejected-slave-promise
promise-rejected-slave-publish-ip-port
{% for part in part_list %}
{{ ' %s' % part }}
{% endfor %}
......
......@@ -11,6 +11,18 @@
"title": "Frontend Replication Quantity",
"type": "integer"
},
"apache-certificate": {
"description": "SSL Certificate used by the server. By appending to it CA certificate it is possible to use this field to replace not implemented apache-ca-certificate. Deprecated, please use master-key-upload-url.",
"textarea": true,
"title": "[DEPRECATED] SSL Certificate, with optional CA certificate",
"type": "string"
},
"apache-key": {
"description": "SSL Key used by the server. Deprecated, please use master-key-upload-url.",
"textarea": true,
"title": "[DEPRECATED] SSL Key",
"type": "string"
},
"domain": {
"description": "Base Domain for create subdomains (ie.: example.com).",
"pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$",
......
......@@ -155,6 +155,27 @@
"title": "Verify Backend Certificates",
"type": "string"
},
"ssl_crt": {
"default": "",
"description": "Content of the SSL Certificate file. Deprecated, please use key-upload-url.",
"textarea": true,
"title": "[DEPRECATED] SSL Certificate",
"type": "string"
},
"ssl_key": {
"default": "",
"description": "Content of the SSL Key file. Deprecated, please use key-upload-url.",
"textarea": true,
"title": "[DEPRECATED] SSL Key",
"type": "string"
},
"ssl_ca_crt": {
"default": "",
"description": "Content of the CA certificate file. Deprecated, please use key-upload-url.",
"textarea": true,
"title": "[DEPRECATED] SSL Certificate Authority's Certificate",
"type": "string"
},
"ssl_proxy_ca_crt": {
"default": "",
"description": "Content of the SSL Certificate Authority file of the backend (to be used with ssl-proxy-verify)",
......
......@@ -50,8 +50,13 @@ content =
from slapos.promise.plugin.${:module} import RunPromise
output = {{ plugin_directory }}/${:name}
# empty section if no cached slaves are available
[slave-log-cache-direct-directory-dict]
{# Loop thought slave list to set up slaves #}
{% for slave_instance in slave_instance_list %}
{% set slave_type = slave_instance.get('type', '') %}
{% set enable_cache = (('' ~ slave_instance.get('enable_cache', '')).lower() in TRUE_VALUES and slave_type != 'redirect') %}
{% set slave_reference = slave_instance.get('slave_reference') %}
{% set slave_kedifa = slave_kedifa_information.get(slave_reference) %}
{% if slave_kedifa %}
......@@ -59,7 +64,6 @@ output = {{ plugin_directory }}/${:name}
{% else %}
{% set key_download_url = 'notreadyyet' %}
{% endif %}
{% set slave_type = slave_instance.get('type', '') %}
{% set slave_section_title = 'dynamic-template-slave-instance-%s' % slave_reference %}
{% set slave_parameter_dict = generic_instance_parameter_dict.copy() %}
{% set slave_publish_dict = {} %}
......@@ -73,6 +77,9 @@ output = {{ plugin_directory }}/${:name}
{% do part_list.extend([slave_logrotate_section, slave_section_title]) %}
{% set slave_log_folder = '${logrotate-directory:logrotate-backup}/' + slave_reference + "-logs" %}
{% if enable_cache %}
{% set slave_log_cache_direct_folder = '${logrotate-directory:logrotate-backup}/' + slave_reference + "-cache-direct-logs" %}
{% endif %}
{# Pass HTTP2 switch #}
{% do slave_instance.__setitem__('enable_http2_by_default', enable_http2_by_default) %}
......@@ -87,6 +94,12 @@ output = {{ plugin_directory }}/${:name}
{% do slave_parameter_dict.__setitem__('error_log', '/'.join([caddy_log_directory, '%s_error_log' % slave_reference])) %}
{% do slave_instance.__setitem__('access_log', slave_parameter_dict.get('access_log')) %}
{% do slave_instance.__setitem__('error_log', slave_parameter_dict.get('error_log')) %}
{% if enable_cache %}
{% do slave_parameter_dict.__setitem__('access_log_cache_direct', '/'.join([caddy_log_cache_direct_directory, '%s_access_log' % slave_reference])) %}
{% do slave_parameter_dict.__setitem__('error_log_cache_direct', '/'.join([caddy_log_cache_direct_directory, '%s_error_log' % slave_reference])) %}
{% do slave_instance.__setitem__('access_log_cache_direct', slave_parameter_dict.get('access_log_cache_direct')) %}
{% do slave_instance.__setitem__('error_log_cache_direct', slave_parameter_dict.get('error_log_cache_direct')) %}
{% endif %}
{# Add slave log directory to the slave log access dict #}
{% do slave_log_dict.__setitem__(slave_reference, slave_log_folder) %}
......@@ -102,7 +115,6 @@ output = {{ plugin_directory }}/${:name}
{% do slave_instance.__setitem__('custom_domain', "%s.%s" % (domain_prefix, slapparameter_dict.get('domain'))) %}
{% endif %}
{% set enable_cache = (('' ~ slave_instance.get('enable_cache', '')).lower() in TRUE_VALUES and slave_type != 'redirect') %}
{% if enable_cache and 'url' in slave_instance %}
{% if 'domain' in slave_instance %}
{% do slave_instance.__setitem__('custom_domain', slave_instance.get('domain')) %}
......@@ -125,22 +137,10 @@ output = {{ plugin_directory }}/${:name}
[slave-log-directory-dict]
{{slave_reference}} = {{ slave_log_folder }}
[slave-log-directories]
<= slave-log-directory-dict
recipe = slapos.cookbook:mkdirectory
{% do part_list.append('slave-log-directories') %}
[caddy-log-access]
< = jinja2-template-base
template = {{frontend_configuration.get('template-log-access')}}
rendered = {{frontend_configuration.get('log-access-configuration')}}
extra-context =
section slave_log_directory slave-log-directory-dict
section slave_password slave-password
section parameter_dict caddy-log-access-parameters
{% do part_list.append('caddy-log-access') %}
{% if enable_cache %}
[slave-log-cache-direct-directory-dict]
{{slave_reference}}_cache_direct = {{ slave_log_cache_direct_folder }}
{% endif %}
[slave-password]
{{ slave_reference }} = {{ '${' + slave_password_section + ':passwd}' }}
......@@ -151,6 +151,13 @@ extra-context =
name = ${:_buildout_section_name_}
log = {{slave_parameter_dict.get('access_log')}} {{slave_parameter_dict.get('error_log')}}
backup = {{ slave_log_folder }}
{% if enable_cache %}
[{{slave_logrotate_section}}_cache_direct]
<= logrotate-entry-base
name = ${:_buildout_section_name_}
log = {{slave_parameter_dict.get('access_log_cache_direct')}} {{slave_parameter_dict.get('error_log_cache_direct')}}
backup = {{ slave_log_cache_direct_folder }}
{% endif %}
{# integrate current logs inside #}
[{{slave_ln_section}}]
......@@ -263,28 +270,6 @@ filename = {{ '%s.conf' % slave_reference }}
{{ '\n' }}
{% set check_error_log_section_title = 'check-%s-error-log-last-hour' % slave_instance.get('slave_reference') %}
{% do part_list.append(check_error_log_section_title) %}
[{{ check_error_log_section_title }}]
<= promise-plugin-base
module = check_error_on_http_log
name = {{ check_error_log_section_title }}.py
config-log-file = {{ slave_instance.get('error_log') }}
config-maximum-delay = 3600
# promise frequency in minutes (2 times/day)
config-frequency = 720
{% set check_error_log_section_title = 'check-%s-error-log-last-day' % slave_instance.get('slave_reference') %}
{% do part_list.append(check_error_log_section_title) %}
[{{ check_error_log_section_title }}]
<= promise-plugin-base
module = check_error_on_http_log
name = {{ check_error_log_section_title }}.py
config-log-file = {{ slave_instance.get('error_log') }}
config-maximum-delay = 86400
# promise frequency in minutes (2 times/day)
config-frequency = 720
{% set monitor_ipv6_test = slave_instance.get('monitor-ipv6-test', '') %}
{% if monitor_ipv6_test %}
{% set monitor_ipv6_section_title = 'check-%s-ipv6-packet-list-test' % slave_instance.get('slave_reference') %}
......@@ -350,6 +335,29 @@ recipe = slapos.cookbook:publish
{# End of the main for loop#}
{% endfor %}
[slave-log-directories]
<= slave-log-directory-dict
recipe = slapos.cookbook:mkdirectory
{% do part_list.append('slave-log-directories') %}
[slave-log-cache-direct-directories]
<= slave-log-cache-direct-directory-dict
recipe = slapos.cookbook:mkdirectory
{% do part_list.append('slave-log-cache-direct-directories') %}
[caddy-log-access]
< = jinja2-template-base
template = {{frontend_configuration.get('template-log-access')}}
rendered = {{frontend_configuration.get('log-access-configuration')}}
extra-context =
section slave_log_directory slave-log-directory-dict
section slave_password slave-password
section parameter_dict caddy-log-access-parameters
{% do part_list.append('caddy-log-access') %}
###############################################
### Prepare virtualhost for slaves using cache
......
......@@ -36,6 +36,13 @@
insecure_skip_verify
{%- endif %}
}
log / {{ slave_parameter.get('access_log_cache_direct') }} "{remote} - {>REMOTE_USER} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\" {latency_ms}" {
rotate_size 0
}
errors {{ slave_parameter.get('error_log_cache_direct') }} {
rotate_size 0
}
}
# SSL-enabled backends
......@@ -58,4 +65,11 @@
insecure_skip_verify
{%- endif %}
}
log / {{ slave_parameter.get('access_log_cache_direct') }} "{remote} - {>REMOTE_USER} [{when}] \"{method} {uri} {proto}\" {status} {size} \"{>Referer}\" \"{>User-Agent}\" {latency_ms}" {
rotate_size 0
}
errors {{ slave_parameter.get('error_log_cache_direct') }} {
rotate_size 0
}
}
......@@ -119,7 +119,7 @@ CONFIG proxy.config.http.cache.http INT 1
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/cache.config.en.html
##############################################################################
CONFIG proxy.config.http.cache.ignore_client_cc_max_age INT 1
CONFIG proxy.config.http.normalize_ae_gzip INT 1
CONFIG proxy.config.http.normalize_ae_gzip INT 0
CONFIG proxy.config.http.cache.cache_responses_to_cookies INT 1
CONFIG proxy.config.http.cache.cache_urls_that_look_dynamic INT 1
# https://docs.trafficserver.apache.org/records.config#proxy-config-http-cache-when-to-revalidate
......
......@@ -258,6 +258,25 @@ print json.dumps(module.extra_config_dict)
class TestDataMixin(object):
def assertRejectedSlavePromiseWithPop(self, parameter_dict):
rejected_slave_promise_url = parameter_dict.pop(
'rejected-slave-promise-url')
try:
result = requests.get(rejected_slave_promise_url, verify=False)
if result.text == '':
result_json = {}
else:
result_json = result.json()
self.assertEqual(
parameter_dict['rejected-slave-dict'],
result_json
)
except AssertionError:
raise
except Exception as e:
self.fail(e)
@staticmethod
def generateHashFromFiles(file_list):
import hashlib
......@@ -364,6 +383,16 @@ class TestDataMixin(object):
'caddy-%s' % (partition_id)] = self.generateHashFromFiles(
hash_file_list + [caddy_wrapper_path]
)
for rejected_slave_publish_path in glob.glob(os.path.join(
self.instance_path, '*', 'etc', 'Caddyfile-rejected-slave')):
partition_id = rejected_slave_publish_path.split('/')[-3]
rejected_slave_pem_path = os.path.join(
self.instance_path, partition_id, 'etc', 'rejected-slave.pem')
hash_value_dict[
'rejected-slave-publish'
] = self.generateHashFromFiles(
hash_file_list + [rejected_slave_publish_path, rejected_slave_pem_path]
)
runtime_data = self.getTrimmedProcessInfo()
self.assertTestData(runtime_data, hash_value_dict=hash_value_dict)
......@@ -570,6 +599,7 @@ class TestMasterRequest(HttpFrontendTestCase, TestDataMixin):
parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict)
self.assertKedifaKeysWithPop(parameter_dict, 'master-')
self.assertRejectedSlavePromiseWithPop(parameter_dict)
self.assertEqual(
{
'monitor-base-url': None,
......@@ -601,6 +631,7 @@ class TestMasterRequestDomain(HttpFrontendTestCase, TestDataMixin):
parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict)
self.assertKedifaKeysWithPop(parameter_dict, 'master-')
self.assertRejectedSlavePromiseWithPop(parameter_dict)
self.assertEqual(
{
......@@ -736,6 +767,14 @@ class SlaveHttpFrontendTestCase(HttpFrontendTestCase):
@classmethod
def untilSlavePartitionReady(cls):
# all on-watch services shall not be exited
for process in cls.getSupervisorRPCServer()\
.supervisor.getAllProcessInfo():
if process['name'].endswith('-on-watch') and \
process['statename'] == 'EXITED':
if process['name'].startswith('monitor-http'):
continue
return False
for slave_reference, partition_parameter_kw in cls\
.getSlaveParameterDictDict().items():
parameter_dict = cls.slapos_controler.slap.registerOpenOrder().request(
......@@ -768,10 +807,6 @@ class SlaveHttpFrontendTestCase(HttpFrontendTestCase):
# run partition for slaves to be setup
cls.runComputerPartitionUntil(
cls.untilSlavePartitionReady)
# run once more slapos node instance, as kedifa-updater sets up
# certificates needed for caddy-frontend, and on this moment it can be
# not started yet
cls.runComputerPartition(max_quantity=1)
for slave_reference, partition_parameter_kw in cls\
.getSlaveParameterDictDict().items():
slave_instance = request(
......@@ -1303,6 +1338,7 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict)
self.assertKedifaKeysWithPop(parameter_dict, 'master-')
self.assertRejectedSlavePromiseWithPop(parameter_dict)
expected_parameter_dict = {
'monitor-base-url': None,
......@@ -3797,6 +3833,7 @@ class TestMalformedBackenUrlSlave(SlaveHttpFrontendTestCase,
parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict)
self.assertKedifaKeysWithPop(parameter_dict, 'master-')
self.assertRejectedSlavePromiseWithPop(parameter_dict)
expected_parameter_dict = {
'monitor-base-url': None,
......@@ -4066,6 +4103,7 @@ class TestSlaveBadParameters(SlaveHttpFrontendTestCase, TestDataMixin):
parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict)
self.assertKedifaKeysWithPop(parameter_dict, 'master-')
self.assertRejectedSlavePromiseWithPop(parameter_dict)
expected_parameter_dict = {
'monitor-base-url': None,
......@@ -4431,6 +4469,7 @@ class TestDuplicateSiteKeyProtection(SlaveHttpFrontendTestCase, TestDataMixin):
parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict)
self.assertKedifaKeysWithPop(parameter_dict, 'master-')
self.assertRejectedSlavePromiseWithPop(parameter_dict)
expected_parameter_dict = {
'monitor-base-url': None,
......@@ -4864,6 +4903,7 @@ class TestSlaveSlapOSMasterCertificateCompatibility(
parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict)
self.assertKedifaKeysWithPop(parameter_dict, 'master-')
self.assertRejectedSlavePromiseWithPop(parameter_dict)
expected_parameter_dict = {
'monitor-base-url': None,
......@@ -5552,6 +5592,7 @@ class TestSlaveSlapOSMasterCertificateCompatibilityUpdate(
parameter_dict = self.parseConnectionParameterDict()
self.assertKeyWithPop('monitor-setup-url', parameter_dict)
self.assertKedifaKeysWithPop(parameter_dict, 'master-')
self.assertRejectedSlavePromiseWithPop(parameter_dict)
expected_parameter_dict = {
'monitor-base-url': None,
......
T-2/etc/monitor-promise/check-_test-error-log-last-day
T-2/etc/monitor-promise/check-_test-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,8 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch EXITED
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-2/etc/monitor-promise/check-_site_2-error-log-last-day
T-2/etc/monitor-promise/check-_site_2-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.py: ERROR
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
......@@ -15,8 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-2/etc/monitor-promise/check-_enable-http2-default-error-log-last-day
T-2/etc/monitor-promise/check-_enable-http2-default-error-log-last-hour
T-2/etc/monitor-promise/check-_enable-http2-false-error-log-last-day
T-2/etc/monitor-promise/check-_enable-http2-false-error-log-last-hour
T-2/etc/monitor-promise/check-_enable-http2-true-error-log-last-day
T-2/etc/monitor-promise/check-_enable-http2-true-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,12 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_ssl_cached.py: ERROR
T-2/etc/plugin/check-_enable-http2-default-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-default-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-false-error-log-last-day.py: OK
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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-1/etc/monitor-promise/check-_enable-http2-default-error-log-last-day
T-1/etc/monitor-promise/check-_enable-http2-default-error-log-last-hour
T-1/etc/monitor-promise/check-_enable-http2-false-error-log-last-day
T-1/etc/monitor-promise/check-_enable-http2-false-error-log-last-hour
T-1/etc/monitor-promise/check-_enable-http2-true-error-log-last-day
T-1/etc/monitor-promise/check-_enable-http2-true-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,12 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_ssl_cached.py: ERROR
T-2/etc/plugin/check-_enable-http2-default-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-default-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-false-error-log-last-day.py: OK
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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-2/etc/monitor-promise/check-_enable-http2-default-error-log-last-day
T-2/etc/monitor-promise/check-_enable-http2-default-error-log-last-hour
T-2/etc/monitor-promise/check-_enable-http2-false-error-log-last-day
T-2/etc/monitor-promise/check-_enable-http2-false-error-log-last-hour
T-2/etc/monitor-promise/check-_enable-http2-true-error-log-last-day
T-2/etc/monitor-promise/check-_enable-http2-true-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,12 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_ssl_cached.py: ERROR
T-2/etc/plugin/check-_enable-http2-default-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-default-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-false-error-log-last-day.py: OK
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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-1/etc/monitor-promise/check-_enable-http2-default-error-log-last-day
T-1/etc/monitor-promise/check-_enable-http2-default-error-log-last-hour
T-1/etc/monitor-promise/check-_enable-http2-false-error-log-last-day
T-1/etc/monitor-promise/check-_enable-http2-false-error-log-last-hour
T-1/etc/monitor-promise/check-_enable-http2-true-error-log-last-day
T-1/etc/monitor-promise/check-_enable-http2-true-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,12 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_ssl_cached.py: ERROR
T-2/etc/plugin/check-_enable-http2-default-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-default-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-false-error-log-last-day.py: OK
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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-2/etc/monitor-promise/check-_empty-error-log-last-day
T-2/etc/monitor-promise/check-_empty-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.py: ERROR
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
......@@ -15,8 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
......@@ -5,9 +5,4 @@ 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-1/etc/cron.d/monitor_collect
\ No newline at end of file
T-0/var/log/monitor-httpd-error.log
T-0/var/log/slapgrid-T-0-error.log
T-1/var/log/expose-csr_id.log
T-2/var/log/frontend-access.log
T-2/var/log/frontend-error.log
T-2/var/log/httpd-csr_id/expose-csr_id.log
T-2/var/log/trafficserver/manager.log
T-2/var/log/trafficserver/traffic.out
\ No newline at end of file
T-1/var/log/expose-csr_id.log
\ No newline at end of file
T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid
T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_configuration_last_state
T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
T-1/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file
......@@ -2,23 +2,11 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_ssl_cached.py: ERROR
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/monitor-bootstrap-status.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/trafficserver-port-listening.py: OK
\ No newline at end of file
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
\ No newline at end of file
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......@@ -13,20 +14,4 @@ T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED
T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-11080-{hash-generic}-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:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING
\ No newline at end of file
......@@ -5,9 +5,4 @@ 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-1/etc/cron.d/monitor_collect
\ No newline at end of file
T-0/var/log/monitor-httpd-error.log
T-0/var/log/slapgrid-T-0-error.log
T-1/var/log/expose-csr_id.log
T-2/var/log/frontend-access.log
T-2/var/log/frontend-error.log
T-2/var/log/httpd-csr_id/expose-csr_id.log
T-2/var/log/trafficserver/manager.log
T-2/var/log/trafficserver/traffic.out
\ No newline at end of file
T-1/var/log/expose-csr_id.log
\ No newline at end of file
T-0/var/run/monitor-httpd.pid
T-0/var/run/monitor/monitor-bootstrap.pid
T-1/var/run/kedifa.pid
T-1/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/caddy_configuration_last_state
T-2/var/run/graceful_configuration_state_signature
T-2/var/run/httpd.pid
T-2/var/run/monitor/monitor-bootstrap.pid
T-2/var/run/validate_configuration_state_signature
\ No newline at end of file
T-1/var/run/monitor/monitor-bootstrap.pid
\ No newline at end of file
......@@ -2,23 +2,11 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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/caddy_cached.py: ERROR
T-2/etc/plugin/caddy_frontend_ipv4_http.py: OK
T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_ssl_cached.py: ERROR
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/monitor-bootstrap-status.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/trafficserver-port-listening.py: OK
\ No newline at end of file
T-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
\ No newline at end of file
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......@@ -13,20 +14,4 @@ T-1:kedifa-{hash-generic}-on-watch RUNNING
T-1:kedifa-reloader EXITED
T-1:monitor-httpd-{hash-generic}-on-watch EXITED
T-1:monitor-httpd-graceful EXITED
T-2:6tunnel-11080-{hash-generic}-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:certificate_authority-{hash-generic}-on-watch RUNNING
T-2:crond-{hash-generic}-on-watch RUNNING
T-2:expose-csr_id-{hash-generic}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend_caddy-{hash-caddy-T-2}-on-watch RUNNING
T-2:kedifa-login-certificate-caucase-updater-on-watch RUNNING
T-2:kedifa-updater-{hash-generic}-on-watch RUNNING
T-2:monitor-httpd-{hash-generic}-on-watch EXITED
T-2:monitor-httpd-graceful EXITED
T-2:trafficserver-{hash-generic}-on-watch RUNNING
T-2:trafficserver-reload EXITED
watchdog:watchdog RUNNING
\ No newline at end of file
T-2/etc/monitor-promise/check-_url-error-log-last-day
T-2/etc/monitor-promise/check-_url-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,8 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-2/etc/monitor-promise/check-_default-error-log-last-day
T-2/etc/monitor-promise/check-_default-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,8 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-2/etc/monitor-promise/check-_default-error-log-last-day
T-2/etc/monitor-promise/check-_default-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,8 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_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-hour.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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-2/etc/monitor-promise/check-_replicate-error-log-last-day
T-2/etc/monitor-promise/check-_replicate-error-log-last-hour
T-3/etc/monitor-promise/check-_replicate-error-log-last-day
T-3/etc/monitor-promise/check-_replicate-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.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
......@@ -15,8 +17,6 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_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-hour.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
......@@ -31,8 +31,6 @@ T-3/etc/plugin/caddy_frontend_ipv4_https.py: OK
T-3/etc/plugin/caddy_frontend_ipv6_http.py: OK
T-3/etc/plugin/caddy_frontend_ipv6_https.py: OK
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-hour.py: OK
T-3/etc/plugin/check-free-disk-space.py: OK
T-3/etc/plugin/expose-csr_id-ip-port-listening.py: OK
T-3/etc/plugin/frontend-caddy-configuration-promise.py: OK
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
......@@ -3,6 +3,18 @@ T-0/var/log/slapgrid-T-0-error.log
T-1/var/log/expose-csr_id.log
T-2/var/log/frontend-access.log
T-2/var/log/frontend-error.log
T-2/var/log/httpd-cache-direct/_enable_cache-disable-no-cache-request_access_log
T-2/var/log/httpd-cache-direct/_enable_cache-disable-no-cache-request_error_log
T-2/var/log/httpd-cache-direct/_enable_cache-disable-via-header_access_log
T-2/var/log/httpd-cache-direct/_enable_cache-disable-via-header_error_log
T-2/var/log/httpd-cache-direct/_enable_cache-ssl-proxy-verify-unverified_access_log
T-2/var/log/httpd-cache-direct/_enable_cache-ssl-proxy-verify-unverified_error_log
T-2/var/log/httpd-cache-direct/_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-unverified_access_log
T-2/var/log/httpd-cache-direct/_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-unverified_error_log
T-2/var/log/httpd-cache-direct/_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt_access_log
T-2/var/log/httpd-cache-direct/_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt_error_log
T-2/var/log/httpd-cache-direct/_enable_cache_access_log
T-2/var/log/httpd-cache-direct/_enable_cache_error_log
T-2/var/log/httpd-csr_id/expose-csr_id.log
T-2/var/log/httpd/_Url_access_log
T-2/var/log/httpd/_Url_error_log
......
T-2/etc/monitor-promise/check-_apache_custom_http_s-accepted-error-log-last-day
T-2/etc/monitor-promise/check-_apache_custom_http_s-accepted-error-log-last-hour
T-2/etc/monitor-promise/check-_caddy_custom_http_s-accepted-error-log-last-day
T-2/etc/monitor-promise/check-_caddy_custom_http_s-accepted-error-log-last-hour
T-2/etc/monitor-promise/check-_custom_domain-error-log-last-day
T-2/etc/monitor-promise/check-_custom_domain-error-log-last-hour
T-2/etc/monitor-promise/check-_custom_domain_ssl_crt_ssl_key-error-log-last-day
T-2/etc/monitor-promise/check-_custom_domain_ssl_crt_ssl_key-error-log-last-hour
T-2/etc/monitor-promise/check-_custom_domain_ssl_crt_ssl_key_ssl_ca_crt-error-log-last-day
T-2/etc/monitor-promise/check-_custom_domain_ssl_crt_ssl_key_ssl_ca_crt-error-log-last-hour
T-2/etc/monitor-promise/check-_custom_domain_wildcard-error-log-last-day
T-2/etc/monitor-promise/check-_custom_domain_wildcard-error-log-last-hour
T-2/etc/monitor-promise/check-_disabled-cookie-list-error-log-last-day
T-2/etc/monitor-promise/check-_disabled-cookie-list-error-log-last-hour
T-2/etc/monitor-promise/check-_empty-error-log-last-day
T-2/etc/monitor-promise/check-_empty-error-log-last-hour
T-2/etc/monitor-promise/check-_enable-http2-default-error-log-last-day
T-2/etc/monitor-promise/check-_enable-http2-default-error-log-last-hour
T-2/etc/monitor-promise/check-_enable-http2-false-error-log-last-day
T-2/etc/monitor-promise/check-_enable-http2-false-error-log-last-hour
T-2/etc/monitor-promise/check-_enable_cache-disable-no-cache-request-error-log-last-day
T-2/etc/monitor-promise/check-_enable_cache-disable-no-cache-request-error-log-last-hour
T-2/etc/monitor-promise/check-_enable_cache-disable-via-header-error-log-last-day
T-2/etc/monitor-promise/check-_enable_cache-disable-via-header-error-log-last-hour
T-2/etc/monitor-promise/check-_enable_cache-error-log-last-day
T-2/etc/monitor-promise/check-_enable_cache-error-log-last-hour
T-2/etc/monitor-promise/check-_enable_cache-ssl-proxy-verify-unverified-error-log-last-day
T-2/etc/monitor-promise/check-_enable_cache-ssl-proxy-verify-unverified-error-log-last-hour
T-2/etc/monitor-promise/check-_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-day
T-2/etc/monitor-promise/check-_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-hour
T-2/etc/monitor-promise/check-_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-day
T-2/etc/monitor-promise/check-_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-hour
T-2/etc/monitor-promise/check-_https-only-error-log-last-day
T-2/etc/monitor-promise/check-_https-only-error-log-last-hour
T-2/etc/monitor-promise/check-_monitor-ipv4-test-error-log-last-day
T-2/etc/monitor-promise/check-_monitor-ipv4-test-error-log-last-hour
T-2/etc/monitor-promise/check-_monitor-ipv4-test-ipv4-packet-list-test
T-2/etc/monitor-promise/check-_monitor-ipv6-test-error-log-last-day
T-2/etc/monitor-promise/check-_monitor-ipv6-test-error-log-last-hour
T-2/etc/monitor-promise/check-_monitor-ipv6-test-ipv6-packet-list-test
T-2/etc/monitor-promise/check-_prefer-gzip-encoding-to-backend-error-log-last-day
T-2/etc/monitor-promise/check-_prefer-gzip-encoding-to-backend-error-log-last-hour
T-2/etc/monitor-promise/check-_re6st-optimal-test-error-log-last-day
T-2/etc/monitor-promise/check-_re6st-optimal-test-error-log-last-hour
T-2/etc/monitor-promise/check-_re6st-optimal-test-re6st-optimal-test
T-2/etc/monitor-promise/check-_server-alias-duplicated-error-log-last-day
T-2/etc/monitor-promise/check-_server-alias-duplicated-error-log-last-hour
T-2/etc/monitor-promise/check-_server-alias-error-log-last-day
T-2/etc/monitor-promise/check-_server-alias-error-log-last-hour
T-2/etc/monitor-promise/check-_server-alias-wildcard-error-log-last-day
T-2/etc/monitor-promise/check-_server-alias-wildcard-error-log-last-hour
T-2/etc/monitor-promise/check-_server-alias_custom_domain-duplicated-error-log-last-day
T-2/etc/monitor-promise/check-_server-alias_custom_domain-duplicated-error-log-last-hour
T-2/etc/monitor-promise/check-_ssl-proxy-verify-unverified-error-log-last-day
T-2/etc/monitor-promise/check-_ssl-proxy-verify-unverified-error-log-last-hour
T-2/etc/monitor-promise/check-_ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-day
T-2/etc/monitor-promise/check-_ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-hour
T-2/etc/monitor-promise/check-_ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-day
T-2/etc/monitor-promise/check-_ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-hour
T-2/etc/monitor-promise/check-_ssl_ca_crt_does_not_match-error-log-last-day
T-2/etc/monitor-promise/check-_ssl_ca_crt_does_not_match-error-log-last-hour
T-2/etc/monitor-promise/check-_ssl_ca_crt_garbage-error-log-last-day
T-2/etc/monitor-promise/check-_ssl_ca_crt_garbage-error-log-last-hour
T-2/etc/monitor-promise/check-_ssl_ca_crt_only-error-log-last-day
T-2/etc/monitor-promise/check-_ssl_ca_crt_only-error-log-last-hour
T-2/etc/monitor-promise/check-_type-eventsource-error-log-last-day
T-2/etc/monitor-promise/check-_type-eventsource-error-log-last-hour
T-2/etc/monitor-promise/check-_type-notebook-error-log-last-day
T-2/etc/monitor-promise/check-_type-notebook-error-log-last-hour
T-2/etc/monitor-promise/check-_type-redirect-error-log-last-day
T-2/etc/monitor-promise/check-_type-redirect-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-default-path-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-default-path-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-path-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-path-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-prefer-gzip-encoding-to-backend-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-prefer-gzip-encoding-to-backend-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-ssl-proxy-verify-unverified-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-ssl-proxy-verify-unverified-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-virtualhostroot-http-port-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-virtualhostroot-http-port-error-log-last-hour
T-2/etc/monitor-promise/check-_type-zope-virtualhostroot-https-port-error-log-last-day
T-2/etc/monitor-promise/check-_type-zope-virtualhostroot-https-port-error-log-last-hour
T-2/etc/monitor-promise/check-_url-error-log-last-day
T-2/etc/monitor-promise/check-_url-error-log-last-hour
T-2/etc/monitor-promise/check-_url_https-url-error-log-last-day
T-2/etc/monitor-promise/check-_url_https-url-error-log-last-hour
\ No newline at end of file
......@@ -2,6 +2,8 @@ T-0/etc/plugin/buildout-T-0-status.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-httpd-listening-on-tcp.py: OK
T-0/etc/plugin/rejected-slave-publish-ip-port-listening.py: OK
T-0/etc/plugin/rejected-slave.py: ERROR
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
......@@ -15,105 +17,9 @@ T-2/etc/plugin/caddy_frontend_ipv4_https.py: OK
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_ssl_cached.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-_apache_custom_http_s-accepted-error-log-last-day.py: OK
T-2/etc/plugin/check-_apache_custom_http_s-accepted-error-log-last-hour.py: OK
T-2/etc/plugin/check-_caddy_custom_http_s-accepted-error-log-last-day.py: OK
T-2/etc/plugin/check-_caddy_custom_http_s-accepted-error-log-last-hour.py: OK
T-2/etc/plugin/check-_custom_domain-error-log-last-day.py: OK
T-2/etc/plugin/check-_custom_domain-error-log-last-hour.py: OK
T-2/etc/plugin/check-_custom_domain_ssl_crt_ssl_key-error-log-last-day.py: OK
T-2/etc/plugin/check-_custom_domain_ssl_crt_ssl_key-error-log-last-hour.py: OK
T-2/etc/plugin/check-_custom_domain_ssl_crt_ssl_key_ssl_ca_crt-error-log-last-day.py: OK
T-2/etc/plugin/check-_custom_domain_ssl_crt_ssl_key_ssl_ca_crt-error-log-last-hour.py: OK
T-2/etc/plugin/check-_custom_domain_wildcard-error-log-last-day.py: OK
T-2/etc/plugin/check-_custom_domain_wildcard-error-log-last-hour.py: OK
T-2/etc/plugin/check-_disabled-cookie-list-error-log-last-day.py: OK
T-2/etc/plugin/check-_disabled-cookie-list-error-log-last-hour.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-_enable-http2-default-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-default-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable-http2-false-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable_cache-disable-no-cache-request-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable_cache-disable-no-cache-request-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable_cache-disable-via-header-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable_cache-disable-via-header-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable_cache-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable_cache-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable_cache-ssl-proxy-verify-unverified-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable_cache-ssl-proxy-verify-unverified-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-hour.py: OK
T-2/etc/plugin/check-_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-day.py: OK
T-2/etc/plugin/check-_enable_cache-ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-hour.py: OK
T-2/etc/plugin/check-_https-only-error-log-last-day.py: OK
T-2/etc/plugin/check-_https-only-error-log-last-hour.py: OK
T-2/etc/plugin/check-_monitor-ipv4-test-error-log-last-day.py: OK
T-2/etc/plugin/check-_monitor-ipv4-test-error-log-last-hour.py: OK
T-2/etc/plugin/check-_monitor-ipv4-test-ipv4-packet-list-test.py: OK
T-2/etc/plugin/check-_monitor-ipv6-test-error-log-last-day.py: OK
T-2/etc/plugin/check-_monitor-ipv6-test-error-log-last-hour.py: OK
T-2/etc/plugin/check-_monitor-ipv6-test-ipv6-packet-list-test.py: OK
T-2/etc/plugin/check-_prefer-gzip-encoding-to-backend-error-log-last-day.py: OK
T-2/etc/plugin/check-_prefer-gzip-encoding-to-backend-error-log-last-hour.py: OK
T-2/etc/plugin/check-_re6st-optimal-test-error-log-last-day.py: OK
T-2/etc/plugin/check-_re6st-optimal-test-error-log-last-hour.py: OK
T-2/etc/plugin/check-_re6st-optimal-test-re6st-optimal-test.py: OK
T-2/etc/plugin/check-_server-alias-duplicated-error-log-last-day.py: OK
T-2/etc/plugin/check-_server-alias-duplicated-error-log-last-hour.py: OK
T-2/etc/plugin/check-_server-alias-error-log-last-day.py: OK
T-2/etc/plugin/check-_server-alias-error-log-last-hour.py: OK
T-2/etc/plugin/check-_server-alias-wildcard-error-log-last-day.py: OK
T-2/etc/plugin/check-_server-alias-wildcard-error-log-last-hour.py: OK
T-2/etc/plugin/check-_server-alias_custom_domain-duplicated-error-log-last-day.py: OK
T-2/etc/plugin/check-_server-alias_custom_domain-duplicated-error-log-last-hour.py: OK
T-2/etc/plugin/check-_ssl-proxy-verify-unverified-error-log-last-day.py: OK
T-2/etc/plugin/check-_ssl-proxy-verify-unverified-error-log-last-hour.py: OK
T-2/etc/plugin/check-_ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-day.py: OK
T-2/etc/plugin/check-_ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-hour.py: OK
T-2/etc/plugin/check-_ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-day.py: OK
T-2/etc/plugin/check-_ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-hour.py: OK
T-2/etc/plugin/check-_ssl_ca_crt_does_not_match-error-log-last-day.py: OK
T-2/etc/plugin/check-_ssl_ca_crt_does_not_match-error-log-last-hour.py: OK
T-2/etc/plugin/check-_ssl_ca_crt_garbage-error-log-last-day.py: OK
T-2/etc/plugin/check-_ssl_ca_crt_garbage-error-log-last-hour.py: OK
T-2/etc/plugin/check-_ssl_ca_crt_only-error-log-last-day.py: OK
T-2/etc/plugin/check-_ssl_ca_crt_only-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-notebook-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-notebook-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-redirect-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-redirect-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-websocket-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-websocket-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-websocket-websocket-path-list-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-websocket-websocket-path-list-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-websocket-websocket-path-list-websocket-transparent-false-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-websocket-websocket-path-list-websocket-transparent-false-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-websocket-websocket-transparent-false-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-websocket-websocket-transparent-false-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-default-path-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-default-path-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-path-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-path-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-prefer-gzip-encoding-to-backend-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-prefer-gzip-encoding-to-backend-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-ssl-proxy-verify-unverified-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-ssl-proxy-verify-unverified-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-ssl-proxy-verify_ssl_proxy_ca_crt-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-ssl-proxy-verify_ssl_proxy_ca_crt-unverified-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-virtualhostroot-http-port-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-virtualhostroot-http-port-error-log-last-hour.py: OK
T-2/etc/plugin/check-_type-zope-virtualhostroot-https-port-error-log-last-day.py: OK
T-2/etc/plugin/check-_type-zope-virtualhostroot-https-port-error-log-last-hour.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-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
......
......@@ -3,6 +3,7 @@ T-0:certificate_authority-{hash-generic}-on-watch RUNNING
T-0:crond-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-{hash-generic}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-0:rejected-slave-publish-{hash-rejected-slave-publish}-on-watch RUNNING
T-1:bootstrap-monitor EXITED
T-1:caucase-updater-on-watch RUNNING
T-1:caucased-{hash-generic}-on-watch RUNNING
......
T-2/etc/monitor-promise/check-_default-path-unsafe-error-log-last-day
T-2/etc/monitor-promise/check-_default-path-unsafe-error-log-last-hour
T-2/etc/monitor-promise/check-_monitor-ipv4-test-unsafe-error-log-last-day
T-2/etc/monitor-promise/check-_monitor-ipv4-test-unsafe-error-log-last-hour
T-2/etc/monitor-promise/check-_monitor-ipv4-test-unsafe-ipv4-packet-list-test
T-2/etc/monitor-promise/check-_monitor-ipv6-test-unsafe-error-log-last-day
T-2/etc/monitor-promise/check-_monitor-ipv6-test-unsafe-error-log-last-hour
T-2/etc/monitor-promise/check-_monitor-ipv6-test-unsafe-ipv6-packet-list-test
T-2/etc/monitor-promise/check-_re6st-optimal-test-nocomma-error-log-last-day
T-2/etc/monitor-promise/check-_re6st-optimal-test-nocomma-error-log-last-hour
T-2/etc/monitor-promise/check-_re6st-optimal-test-unsafe-error-log-last-day
T-2/etc/monitor-promise/check-_re6st-optimal-test-unsafe-error-log-last-hour
T-2/etc/monitor-promise/check-_re6st-optimal-test-unsafe-re6st-optimal-test
T-2/etc/monitor-promise/check-_server-alias-same-error-log-last-day