Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Matevz Golob
slapos
Commits
724d5550
Commit
724d5550
authored
6 years ago
by
Łukasz Nowak
Browse files
Options
Download
Plain Diff
Update Release Candidate
parents
efca397e
17dc1232
Changes
97
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
387 additions
and
336 deletions
+387
-336
slapos/recipe/wrapper.py
slapos/recipe/wrapper.py
+1
-1
software/caddy-frontend/README.caddy_frontend.rst
software/caddy-frontend/README.caddy_frontend.rst
+12
-0
software/caddy-frontend/buildout.hash.cfg
software/caddy-frontend/buildout.hash.cfg
+2
-2
software/caddy-frontend/instance-apache-frontend.cfg.in
software/caddy-frontend/instance-apache-frontend.cfg.in
+82
-67
software/caddy-frontend/templates/apache-custom-slave-list.cfg.in
.../caddy-frontend/templates/apache-custom-slave-list.cfg.in
+42
-20
software/caddy-frontend/test/test.py
software/caddy-frontend/test/test.py
+157
-107
software/caddy-frontend/test/test_data/test.TestDefaultMonitorHttpdPort.test_plugin_list-CADDY.txt
...st.TestDefaultMonitorHttpdPort.test_plugin_list-CADDY.txt
+0
-7
software/caddy-frontend/test/test_data/test.TestDefaultMonitorHttpdPort.test_promise_list-CADDY.txt
...t.TestDefaultMonitorHttpdPort.test_promise_list-CADDY.txt
+0
-25
software/caddy-frontend/test/test_data/test.TestDefaultMonitorHttpdPort.test_promise_run_plugin-CADDY.txt
...DefaultMonitorHttpdPort.test_promise_run_plugin-CADDY.txt
+25
-0
software/caddy-frontend/test/test_data/test.TestDefaultMonitorHttpdPort.test_promise_run_promise-CADDY.txt
...efaultMonitorHttpdPort.test_promise_run_promise-CADDY.txt
+4
-0
software/caddy-frontend/test/test_data/test.TestDuplicateSiteKeyProtection.test_plugin_list-CADDY.txt
...TestDuplicateSiteKeyProtection.test_plugin_list-CADDY.txt
+0
-8
software/caddy-frontend/test/test_data/test.TestDuplicateSiteKeyProtection.test_promise_list-CADDY.txt
...estDuplicateSiteKeyProtection.test_promise_list-CADDY.txt
+0
-25
software/caddy-frontend/test/test_data/test.TestDuplicateSiteKeyProtection.test_promise_run_plugin-CADDY.txt
...licateSiteKeyProtection.test_promise_run_plugin-CADDY.txt
+25
-0
software/caddy-frontend/test/test_data/test.TestDuplicateSiteKeyProtection.test_promise_run_promise-CADDY.txt
...icateSiteKeyProtection.test_promise_run_promise-CADDY.txt
+4
-0
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlave.test_plugin_list-CADDY.txt
...ableHttp2ByDefaultDefaultSlave.test_plugin_list-CADDY.txt
+0
-8
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlave.test_promise_list-CADDY.txt
...bleHttp2ByDefaultDefaultSlave.test_promise_list-CADDY.txt
+0
-29
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlave.test_promise_run_plugin-CADDY.txt
...p2ByDefaultDefaultSlave.test_promise_run_plugin-CADDY.txt
+29
-0
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlave.test_promise_run_promise-CADDY.txt
...2ByDefaultDefaultSlave.test_promise_run_promise-CADDY.txt
+4
-0
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2.test_plugin_list-CADDY.txt
...DefaultSlaveGlobalDisableHttp2.test_plugin_list-CADDY.txt
+0
-8
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2.test_promise_list-CADDY.txt
...efaultSlaveGlobalDisableHttp2.test_promise_list-CADDY.txt
+0
-29
No files found.
slapos/recipe/wrapper.py
View file @
724d5550
...
...
@@ -53,7 +53,7 @@ class Recipe(GenericBaseRecipe):
for
line
in
(
self
.
options
.
get
(
'environment'
)
or
''
).
splitlines
():
line
=
line
.
strip
()
if
line
:
k
,
v
=
line
.
split
(
'='
)
k
,
v
=
line
.
split
(
'='
,
1
)
environment
[
k
.
rstrip
()]
=
v
.
lstrip
()
kw
=
{}
...
...
This diff is collapsed.
Click to expand it.
software/caddy-frontend/README.caddy_frontend.rst
View file @
724d5550
...
...
@@ -467,6 +467,18 @@ So it is required to ``DNAT`` from ``${public IP}`` of the computer to the compu
iptables -A DNAT -d ${public IP}/32 -p udp -m udp --dport ${port} -j DNAT --to-destination ${local IP}:${port}
Promises
========
Note that in some cases promises will fail:
* not possible to request frontend slave for monitoring (monitoring frontend promise)
* no slaves present (configuration promise and others)
* no cached slave present (configuration promise and others)
* no nginx style slave present (websocket, notebook) (configuration promise and others)
This is known issue and shall be tackled soon.
Notes
=====
...
...
This diff is collapsed.
Click to expand it.
software/caddy-frontend/buildout.hash.cfg
View file @
724d5550
...
...
@@ -22,7 +22,7 @@ md5sum = c801b7f9f11f0965677c22e6bbe9281b
[template-apache-frontend]
filename = instance-apache-frontend.cfg.in
md5sum =
da7b5804d50c727412885e8b818ca433
md5sum =
6fd023f0d29421d8579f0b3351473bb0
[template-apache-replicate]
filename = instance-apache-replicate.cfg.in
...
...
@@ -30,7 +30,7 @@ md5sum = 86f15c85054800a55a7093d37b03cdce
[template-slave-list]
filename = templates/apache-custom-slave-list.cfg.in
md5sum =
5b91c0079b42780054da004f8fc6f26b
md5sum =
439a4e415bef9d44b37bee4d5e4aa924
[template-slave-configuration]
filename = templates/custom-virtualhost.conf.in
...
...
This diff is collapsed.
Click to expand it.
software/caddy-frontend/instance-apache-frontend.cfg.in
View file @
724d5550
...
...
@@ -75,6 +75,7 @@ run = ${:var}/run
service = ${:etc}/service
etc-run = ${:etc}/run
promise = ${:etc}/promise
plugin = ${:etc}/plugin
logrotate-backup = ${:backup}/logrotate
logrotate-entries = ${:etc}/logrotate.d
...
...
@@ -194,6 +195,7 @@ extra-context =
section caddy_configuration caddy-configuration
section nginx_configuration nginx-configuration
key monitor_base_url monitor-instance-parameter:monitor-base-url
key plugin_directory directory:plugin
key promise_directory directory:promises
key report_directory directory:bin
key bin_directory :bin_directory
...
...
@@ -510,11 +512,21 @@ filename = plugin.config
context =
key content trafficserver-variable:plugin-config
[promise-plugin-base]
recipe = slapos.cookbook:promise.plugin
eggs =
slapos.toolbox
content =
from slapos.promise.plugin.${:module} import RunPromise
output = ${directory:plugin}/${:name}
[trafficserver-promise-listen-port]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/trafficserver-port-listening
hostname = ${trafficserver-variable:local-ip}
port = ${trafficserver-variable:input-port}
<= promise-plugin-base
module = check_port_listening
name = trafficserver-port-listening.py
config-hostname = ${trafficserver-variable:local-ip}
config-port = ${trafficserver-variable:input-port}
[trafficserver-line]
recipe = slapos.cookbook:wrapper
...
...
@@ -523,18 +535,10 @@ wrapper-path = ${directory:bin}/traffic_line
environment = TS_ROOT=${buildout:directory}
[trafficserver-promise-cache-availability]
recipe = collective.recipe.template
input =
inline:#!${buildout:executable}
import subprocess
import sys
traffic_line = "${trafficserver-line:wrapper-path}"
result = float(subprocess.check_output([traffic_line, '-r', 'proxy.node.cache.percent_free' ]))
if result != 0: sys.exit(0)
sys.stderr.write("Cache not available, availability: %s" % result)
sys.exit(127)
output = ${directory:promise}/trafficserver-cache-availability
mode = 700
<= promise-plugin-base
module = trafficserver_cache_availability
name = trafficserver-cache-availability.py
config-wrapper-path = ${trafficserver-line:wrapper-path}
### End of ATS sections
...
...
@@ -607,45 +611,52 @@ extra-context =
# Promises checking configuration:
[promise-frontend-caddy-configuration]
recipe = slapos.cookbook:wrapper
command-line = ${caddy-configuration:frontend-configuration-verification}
wrapper-path = ${directory:promise}/frontend-caddy-configuration-promise
<= promise-plugin-base
module = validate_frontend_configuration
name = frontend-caddy-configuration-promise.py
config-verification-script = ${caddy-configuration:frontend-configuration-verification}
[promise-caddy-frontend-v4-https]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/caddy_frontend_ipv4_https
hostname = {{ instance_parameter['ipv4-random'] }}
port = ${configuration:port}
<= promise-plugin-base
module = check_port_listening
name = caddy_frontend_ipv4_https.py
config-hostname = {{ instance_parameter['ipv4-random'] }}
config-port = ${configuration:port}
[promise-caddy-frontend-v4-http]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/caddy_frontend_ipv4_http
hostname = {{ instance_parameter['ipv4-random'] }}
port = ${configuration:plain_http_port}
<= promise-plugin-base
module = check_port_listening
name = caddy_frontend_ipv4_http.py
config-hostname = {{ instance_parameter['ipv4-random'] }}
config-port = ${configuration:plain_http_port}
[promise-caddy-frontend-v6-https]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/caddy_frontend_ipv6_https
hostname = {{ instance_parameter['ipv6-random'] }}
port = ${configuration:port}
<= promise-plugin-base
module = check_port_listening
name = caddy_frontend_ipv6_https.py
config-hostname = {{ instance_parameter['ipv6-random'] }}
config-port = ${configuration:port}
[promise-caddy-frontend-v6-http]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/caddy_frontend_ipv6_http
hostname = {{ instance_parameter['ipv6-random'] }}
port = ${configuration:plain_http_port}
<= promise-plugin-base
module = check_port_listening
name = caddy_frontend_ipv6_http.py
config-hostname = {{ instance_parameter['ipv6-random'] }}
config-port = ${configuration:plain_http_port}
[promise-caddy-frontend-cached]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/caddy_cached
hostname = {{ instance_parameter['ipv4-random'] }}
port = ${caddy-configuration:cache-through-port}
<= promise-plugin-base
module = check_port_listening
name = caddy_cached.py
config-hostname = {{ instance_parameter['ipv4-random'] }}
config-port = ${caddy-configuration:cache-through-port}
[promise-caddy-frontend-ssl-cached]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/caddy_ssl_cached
hostname = {{ instance_parameter['ipv4-random'] }}
port = ${caddy-configuration:ssl-cache-through-port}
<= promise-plugin-base
module = check_port_listening
name = caddy_ssl_cached.py
config-hostname = {{ instance_parameter['ipv4-random'] }}
config-port = ${caddy-configuration:ssl-cache-through-port}
[promise-caddy-is-process-older-than-dependency-set]
recipe = slapos.cookbook:wrapper
...
...
@@ -707,11 +718,10 @@ context =
raw content show:cache-stats
[monitor-verify-re6st-connectivity]
recipe = slapos.cookbook:check_url_available
path = ${directory:promise}/re6st-connectivity
url = ${configuration:re6st-verification-url}
dash_path = {{ parameter_dict['dash'] }}/bin/dash
curl_path = {{ parameter_dict['curl'] }}/bin/curl
<= promise-plugin-base
module = check_url_available
name = re6st-connectivity.py
config-url = ${configuration:re6st-verification-url}
#######################
# Nginx
...
...
@@ -772,33 +782,38 @@ ssl_certificate = ${ca-frontend:cert-file}
ssl_key = ${ca-frontend:key-file}
[promise-nginx-configuration]
recipe = slapos.cookbook:wrapper
command-line = ${nginx-configuration:nginx-configuration-verification}
wrapper-path = ${directory:promise}/nginx-configuration-promise
<= promise-plugin-base
module = validate_frontend_configuration
name = nginx-configuration-promise.py
config-verification-script = ${nginx-configuration:nginx-configuration-verification}
[promise-nginx-frontend-v4-https]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/nginx_frontend_ipv4_https
hostname = {{ instance_parameter['ipv4-random'] }}
port = ${configuration:nginx_port}
<= promise-plugin-base
module = check_port_listening
name = nginx_frontend_ipv4_https.py
config-hostname = {{ instance_parameter['ipv4-random'] }}
config-port = ${configuration:nginx_port}
[promise-nginx-frontend-v4-http]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/nginx_frontend_ipv4_http
hostname = {{ instance_parameter['ipv4-random'] }}
port = ${configuration:plain_nginx_port}
<= promise-plugin-base
module = check_port_listening
name = nginx_frontend_ipv4_http.py
config-hostname = {{ instance_parameter['ipv4-random'] }}
config-port = ${configuration:plain_nginx_port}
[promise-nginx-frontend-v6-https]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/nginx_frontend_ipv6_https
hostname = {{ instance_parameter['ipv6-random'] }}
port = ${configuration:nginx_port}
<= promise-plugin-base
module = check_port_listening
name = nginx_frontend_ipv6_https.py
config-hostname = {{ instance_parameter['ipv6-random'] }}
config-port = ${configuration:nginx_port}
[promise-nginx-frontend-v6-http]
recipe = slapos.cookbook:check_port_listening
path = ${directory:promise}/nginx_frontend_ipv6_http
hostname = {{ instance_parameter['ipv6-random'] }}
port = ${configuration:plain_nginx_port}
<= promise-plugin-base
module = check_port_listening
name = nginx_frontend_ipv6_http.py
config-hostname = {{ instance_parameter['ipv6-random'] }}
config-port = ${configuration:plain_nginx_port}
[promise-nginx-is-process-older-than-dependency-set]
recipe = slapos.cookbook:wrapper
...
...
This diff is collapsed.
Click to expand it.
software/caddy-frontend/templates/apache-custom-slave-list.cfg.in
View file @
724d5550
...
...
@@ -44,6 +44,14 @@ certs = {{ custom_ssl_directory }}/certs/
newcerts = {{ custom_ssl_directory }}/newcerts/
crl = {{ custom_ssl_directory }}/crl/
[promise-plugin-base]
recipe = slapos.cookbook:promise.plugin
eggs =
slapos.toolbox
content =
from slapos.promise.plugin.${:module} import RunPromise
output = {{ plugin_directory }}/${:name}
{# Loop thought slave list to set up slaves #}
{% for slave_instance in slave_instance_list %}
{% set slave_reference = slave_instance.get('slave_reference') %}
...
...
@@ -276,28 +284,36 @@ extra-context =
{% 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 }}]
recipe = slapos.cookbook:wrapper
command-line = {{ bin_directory }}/check-error-on-apache-log -l {{ slave_instance.get('error_log') }} -d 3600
filename = {{ check_error_log_section_title }}
wrapper-path = {{ promise_directory }}/${:filename}
<= 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 }}]
recipe = slapos.cookbook:wrapper
command-line = {{ bin_directory }}/check-error-on-apache-log -l {{ slave_instance.get('error_log') }} -d 86400
filename = {{ check_error_log_section_title }}
wrapper-path = {{ promise_directory }}/${:filename}
<= 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') %}
{% do part_list.append(monitor_ipv6_section_title) %}
[{{ monitor_ipv6_section_title }}]
recipe = slapos.cookbook:wrapper
command-line = {{ dumps(bin_directory ~ '/is-icmp-packet-lost -a ' ~ monitor_ipv6_test) }}
filename = {{ monitor_ipv6_section_title }}
wrapper-path = {{ promise_directory }}/${:filename}
<= promise-plugin-base
module = check_icmp_packet_lost
name = {{ monitor_ipv6_section_title }}.py
config-address = {{ dumps(monitor_ipv6_test) }}
# promise frequency in minutes (2 times/day)
config-frequency = 720
{% endif %}
{% set monitor_ipv4_test = slave_instance.get('monitor-ipv4-test', '') %}
...
...
@@ -305,10 +321,13 @@ wrapper-path = {{ promise_directory }}/${:filename}
{% set monitor_ipv4_section_title = 'check-%s-ipv4-packet-list-test' % slave_instance.get('slave_reference') %}
{% do part_list.append(monitor_ipv4_section_title) %}
[{{ monitor_ipv4_section_title }}]
recipe = slapos.cookbook:wrapper
command-line = {{ dumps(bin_directory ~ '/is-icmp-packet-lost -4 -a ' ~ monitor_ipv4_test) }}
filename = {{ monitor_ipv4_section_title }}
wrapper-path = {{ promise_directory }}/${:filename}
<= promise-plugin-base
module = check_icmp_packet_lost
name = {{ monitor_ipv4_section_title }}.py
config-address = {{ dumps(monitor_ipv4_test) }}
config-ipv4 = true
# promise frequency in minutes (2 times/day)
config-frequency = 720
{% endif %}
{% set re6st_optimal_test = '' ~ slave_instance.get('re6st-optimal-test', '') %}
...
...
@@ -322,10 +341,13 @@ wrapper-path = {{ promise_directory }}/${:filename}
{% do part_list.append(re6st_optimal_test_section_title) %}
[{{ re6st_optimal_test_section_title }}]
recipe = slapos.cookbook:wrapper
command-line = {{ dumps(bin_directory ~ '/check-re6st-optimal-status -4 ' ~ re6st_ipv4 ~ ' -6 ' ~ re6st_ipv6) }}
filename = {{ re6st_optimal_test_section_title }}
wrapper-path = {{ promise_directory }}/${:filename}
<= promise-plugin-base
module = check_re6st_optimal_status
name = {{ re6st_optimal_test_section_title }}.py
config-ipv4 = {{ dumps(re6st_ipv4) }}
config-ipv6 = {{ dumps(re6st_ipv6) }}
# promise frequency in minutes (2 times/day)
config-frequency = 720
{% endif %}
...
...
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test.py
View file @
724d5550
...
...
@@ -187,16 +187,18 @@ class CertificateAuthority(object):
return
certificate
,
certificate
.
public_bytes
(
serialization
.
Encoding
.
PEM
)
def
subprocess_output
(
*
args
,
**
kwargs
):
def
subprocess_
status_
output
(
*
args
,
**
kwargs
):
prc
=
subprocess
.
Popen
(
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
STDOUT
,
*
args
,
**
kwargs
)
**
kwargs
)
out
,
err
=
prc
.
communicate
()
return
out
return
prc
.
returncode
,
out
def
subprocess_output
(
*
args
,
**
kwargs
):
return
subprocess_status_output
(
*
args
,
**
kwargs
)[
1
]
def
isHTTP2
(
domain
,
ip
):
...
...
@@ -224,6 +226,31 @@ def getQUIC(url, ip, port):
return
False
,
e
.
output
def
getPluginParameterDict
(
software_path
,
filepath
):
bin_file
=
os
.
path
.
join
(
software_path
,
'bin'
,
'test-plugin-promise'
)
with
open
(
bin_file
,
'w'
)
as
f
:
f
.
write
(
"""#!%s/bin/pythonwitheggs
import os
import importlib
import sys
import json
filepath = sys.argv[1]
sys.path[0:0] = [os.path.dirname(filepath)]
filename = os.path.basename(filepath)
module = importlib.import_module(os.path.splitext(filename)[0])
print json.dumps(module.extra_config_dict)
"""
%
software_path
)
os
.
chmod
(
bin_file
,
0755
)
result
=
subprocess_output
([
bin_file
,
filepath
]).
strip
()
try
:
return
json
.
loads
(
result
)
except
ValueError
,
e
:
raise
ValueError
(
"%s
\n
Result was: %s"
%
(
e
,
result
))
class
TestDataMixin
(
object
):
@
staticmethod
def
generateHashFromFiles
(
file_list
):
...
...
@@ -269,24 +296,6 @@ class TestDataMixin(object):
finally
:
self
.
maxDiff
=
maxDiff
def
test_plugin_list
(
self
):
runtime_data
=
'
\n
'
.
join
(
sorted
([
q
[
len
(
self
.
instance_path
)
+
1
:]
for
q
in
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'plugin'
,
'*'
))
if
not
q
.
endswith
(
'pyc'
)
# ignore compiled python
]))
self
.
assertTestData
(
runtime_data
)
def
test_promise_list
(
self
):
runtime_data
=
'
\n
'
.
join
(
sorted
([
q
[
len
(
self
.
instance_path
)
+
1
:]
for
q
in
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'promise'
,
'*'
))]))
self
.
assertTestData
(
runtime_data
)
def
_test_file_list
(
self
,
slave_dir
,
IGNORE_PATH_LIST
):
runtime_data
=
[]
for
slave_var
in
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'var'
)):
...
...
@@ -335,6 +344,56 @@ class TestDataMixin(object):
runtime_data
=
self
.
getTrimmedProcessInfo
()
self
.
assertTestData
(
runtime_data
,
hash_value
=
h
)
def
test_promise_run_plugin
(
self
):
ignored_plugin_list
=
[
'__init__.py'
,
# that's not a plugin
'monitor-http-frontend.py'
,
# can't check w/o functioning frontend
]
runpromise_bin
=
os
.
path
.
join
(
self
.
software_path
,
'bin'
,
'monitor.runpromise'
)
partition_path_list
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
))
promise_status_list
=
[]
for
partition_path
in
sorted
(
partition_path_list
):
plugin_path_list
=
sorted
(
glob
.
glob
(
os
.
path
.
join
(
partition_path
,
'etc'
,
'plugin'
,
'*.py'
)
))
strip
=
len
(
os
.
path
.
join
(
partition_path
,
'etc'
,
'plugin'
))
+
1
for
plugin_path
in
plugin_path_list
:
monitor_conf
=
os
.
path
.
join
(
partition_path
,
'etc'
,
'monitor.conf'
)
plugin
=
plugin_path
[
strip
:]
if
plugin
in
ignored_plugin_list
:
continue
plugin_status
,
plugin_result
=
subprocess_status_output
([
runpromise_bin
,
'-c'
,
monitor_conf
,
'--run-only'
,
plugin
])
# sanity check
if
'Checking promise %s'
%
plugin
not
in
plugin_result
:
plugin_status
=
1
promise_status_list
.
append
(
'%s: %s'
%
(
plugin_path
[
len
(
self
.
instance_path
)
+
1
:],
plugin_status
==
0
and
'OK'
or
'ERROR'
))
self
.
assertTestData
(
'
\n
'
.
join
(
promise_status_list
))
def
test_promise_run_promise
(
self
):
partition_path_list
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
))
promise_status_list
=
[]
for
partition_path
in
sorted
(
partition_path_list
):
promise_path_list
=
sorted
(
glob
.
glob
(
os
.
path
.
join
(
partition_path
,
'etc'
,
'promise'
,
'*'
)
))
for
promise_path
in
promise_path_list
:
promise_result
=
subprocess
.
call
([
promise_path
])
promise_status_list
.
append
(
'%s: %s'
%
(
promise_path
[
len
(
self
.
instance_path
)
+
1
:],
promise_result
==
0
and
'OK'
or
'ERROR'
))
self
.
assertTestData
(
'
\n
'
.
join
(
promise_status_list
))
class
HttpFrontendTestCase
(
SlapOSInstanceTestCase
):
# show full diffs, as it is required for proper analysis of problems
...
...
@@ -1030,8 +1089,6 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
self
.
assertEqual
(
set
([
'monitor-http-frontend'
,
'monitor-httpd-listening-on-tcp'
,
'promise-monitor-httpd-is-process-older-than-dependency-set'
,
]),
set
(
os
.
listdir
(
os
.
path
.
join
(
partition_path
,
'etc'
,
'promise'
))))
...
...
@@ -1040,6 +1097,8 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
set
([
'monitor-bootstrap-status.py'
,
'check-free-disk-space.py'
,
'monitor-http-frontend.py'
,
'monitor-httpd-listening-on-tcp.py'
,
'buildout-%s-0-status.py'
%
(
type
(
self
).
__name__
,),
'__init__.py'
,
]),
...
...
@@ -1055,17 +1114,6 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
os
.
path
.
join
(
partition_path
,
'etc'
,
'httpd-cors.cfg'
),
'r'
).
read
().
strip
())
def
test_promise_monitor_httpd_listening_on_tcp
(
self
):
result
=
set
([
subprocess
.
call
(
q
)
for
q
in
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'promise'
,
'monitor-httpd-listening-on-tcp'
))])
self
.
assertEqual
(
set
([
0
]),
result
)
def
test_slave_partition_state
(
self
):
partition_path
=
self
.
getSlavePartitionPath
()
self
.
assertTrue
(
...
...
@@ -2410,18 +2458,17 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
parameter_dict
[
'domain'
],
parameter_dict
[
'public-ipv4'
],
'test-path'
)
self
.
assertEqual
(
httplib
.
NOT_FOUND
,
result_http
.
status_code
)
# rewrite SR/bin/is-icmp-packet-lost
fname
=
os
.
path
.
join
(
self
.
software_path
,
'bin'
,
'is-icmp-packet-lost'
)
self
.
assertTrue
(
os
.
path
.
isfile
(
fname
))
open
(
fname
,
'w'
).
write
(
'echo "$@"'
)
# call the monitor for this partition
monitor_file
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'promise'
,
'check-_monitor-ipv6-test-ipv6-packet-list-test'
))[
0
]
self
.
instance_path
,
'*'
,
'etc'
,
'plugin'
,
'check-_monitor-ipv6-test-ipv6-packet-list-test.py'
))[
0
]
# get promise module and check that parameters are ok
self
.
assertEqual
(
'-a monitor-ipv6-test'
,
subprocess_output
(
monitor_file
).
strip
()
getPluginParameterDict
(
self
.
software_path
,
monitor_file
),
{
'frequency'
:
'720'
,
'address'
:
'monitor-ipv6-test'
}
)
def
test_monitor_ipv4_test
(
self
):
...
...
@@ -2452,18 +2499,18 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
parameter_dict
[
'domain'
],
parameter_dict
[
'public-ipv4'
],
'test-path'
)
self
.
assertEqual
(
httplib
.
NOT_FOUND
,
result_http
.
status_code
)
# rewrite SR/bin/is-icmp-packet-lost
fname
=
os
.
path
.
join
(
self
.
software_path
,
'bin'
,
'is-icmp-packet-lost'
)
self
.
assertTrue
(
os
.
path
.
isfile
(
fname
))
open
(
fname
,
'w'
).
write
(
'echo "$@"'
)
# call the monitor for this partition
monitor_file
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'promise'
,
'check-_monitor-ipv4-test-ipv4-packet-list-test'
))[
0
]
self
.
instance_path
,
'*'
,
'etc'
,
'plugin'
,
'check-_monitor-ipv4-test-ipv4-packet-list-test.py'
))[
0
]
# get promise module and check that parameters are ok
self
.
assertEqual
(
'-4 -a monitor-ipv4-test'
,
subprocess_output
(
monitor_file
).
strip
()
getPluginParameterDict
(
self
.
software_path
,
monitor_file
),
{
'frequency'
:
'720'
,
'ipv4'
:
'true'
,
'address'
:
'monitor-ipv4-test'
,
}
)
def
test_re6st_optimal_test
(
self
):
...
...
@@ -2494,19 +2541,18 @@ http://apachecustomhttpsaccepted.example.com:%%(http_port)s {
parameter_dict
[
'domain'
],
parameter_dict
[
'public-ipv4'
],
'test-path'
)
self
.
assertEqual
(
httplib
.
NOT_FOUND
,
result_http
.
status_code
)
# rewrite SR/bin/is-icmp-packet-lost
fname
=
os
.
path
.
join
(
self
.
software_path
,
'bin'
,
'check-re6st-optimal-status'
)
self
.
assertTrue
(
os
.
path
.
isfile
(
fname
))
open
(
fname
,
'w'
).
write
(
'echo "$@"'
)
# call the monitor for this partition
monitor_file
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'promise'
,
'check-_re6st-optimal-test-re6st-optimal-test'
))[
0
]
self
.
instance_path
,
'*'
,
'etc'
,
'plugin'
,
'check-_re6st-optimal-test-re6st-optimal-test.py'
))[
0
]
# get promise module and check that parameters are ok
self
.
assertEqual
(
'-4 ipv4 -6 ipv6'
,
subprocess_output
(
monitor_file
).
strip
()
getPluginParameterDict
(
self
.
software_path
,
monitor_file
),
{
'frequency'
:
'720'
,
'ipv4'
:
'ipv4'
,
'ipv6'
:
'ipv6'
}
)
def
test_enable_cache
(
self
):
...
...
@@ -3370,14 +3416,18 @@ class TestRe6stVerificationUrlDefaultSlave(SlaveHttpFrontendTestCase,
re6st_connectivity_promise_list
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'p
romise
'
,
're6st-connectivity'
))
self
.
instance_path
,
'*'
,
'etc'
,
'p
lugin
'
,
're6st-connectivity
.py
'
))
self
.
assertEqual
(
1
,
len
(
re6st_connectivity_promise_list
))
re6st_connectivity_promise_file
=
re6st_connectivity_promise_list
[
0
]
self
.
assertTrue
(
'URL="http://[2001:67c:1254:4::1]/index.html"'
in
open
(
re6st_connectivity_promise_list
[
0
]).
read
()
self
.
assertEqual
(
getPluginParameterDict
(
self
.
software_path
,
re6st_connectivity_promise_file
),
{
'url'
:
'http://[2001:67c:1254:4::1]/index.html'
,
}
)
...
...
@@ -3419,14 +3469,18 @@ class TestRe6stVerificationUrlSlave(SlaveHttpFrontendTestCase,
re6st_connectivity_promise_list
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'p
romise
'
,
're6st-connectivity'
))
self
.
instance_path
,
'*'
,
'etc'
,
'p
lugin
'
,
're6st-connectivity
.py
'
))
self
.
assertEqual
(
1
,
len
(
re6st_connectivity_promise_list
))
re6st_connectivity_promise_file
=
re6st_connectivity_promise_list
[
0
]
self
.
assertTrue
(
'URL="some-re6st-verification-url"'
in
open
(
re6st_connectivity_promise_list
[
0
]).
read
()
self
.
assertEqual
(
getPluginParameterDict
(
self
.
software_path
,
re6st_connectivity_promise_file
),
{
'url'
:
'some-re6st-verification-url'
,
}
)
...
...
@@ -3716,7 +3770,7 @@ https://www.google.com {}""",
},
're6st-optimal-test-unsafe'
:
{
're6st-optimal-test'
:
'new
\n
line;rm -fr ~;,new
\\
line
\n
[s${esection:eoption}'
,
'new
\n
line;rm -fr ~;,new
line
\n
[s${esection:eoption}'
,
},
'custom_domain-unsafe'
:
{
'custom_domain'
:
'${section:option} afterspace
\n
afternewline'
,
...
...
@@ -3835,23 +3889,21 @@ https://www.google.com {}""",
self
.
assertEqual
(
httplib
.
NOT_FOUND
,
result
.
status_code
)
# rewrite SR/bin/is-icmp-packet-lost
fname
=
os
.
path
.
join
(
self
.
software_path
,
'bin'
,
'check-re6st-optimal-status'
)
self
.
assertTrue
(
os
.
path
.
isfile
(
fname
))
open
(
fname
,
'w'
).
write
(
'echo "$@"'
)
# call the monitor for this partition
monitor_file
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'p
romise
'
,
'check-_re6st-optimal-test-unsafe-re6st-optimal-test'
))[
0
]
self
.
instance_path
,
'*'
,
'etc'
,
'p
lugin
'
,
'check-_re6st-optimal-test-unsafe-re6st-optimal-test
.py
'
))[
0
]
# Note: The result is a bit differnt from the request (newlines stripped),
# but good enough to prove, that ${esection:eoption} has been
# correctly passed to the script.
self
.
assertEqual
(
'-4 newline [s${esection:eoption} -6 new line;rm -fr ~;'
,
subprocess_output
(
monitor_file
).
strip
()
getPluginParameterDict
(
self
.
software_path
,
monitor_file
),
{
'frequency'
:
'720'
,
'ipv4'
:
'new line
\n
[s${esection:eoption}'
,
'ipv6'
:
'new
\n
line;rm -fr ~;'
,
}
)
def
test_re6st_optimal_test_nocomma
(
self
):
...
...
@@ -3881,8 +3933,8 @@ https://www.google.com {}""",
# assert that there is no nocomma file
monitor_file_list
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'p
romise
'
,
'check-_re6st-optimal-test-nocomma-re6st-optimal-test'
))
self
.
instance_path
,
'*'
,
'etc'
,
'p
lugin
'
,
'check-_re6st-optimal-test-nocomma-re6st-optimal-test
.py
'
))
self
.
assertEqual
(
[],
monitor_file_list
...
...
@@ -4029,19 +4081,19 @@ https://www.google.com {}""",
parameter_dict
[
'domain'
],
parameter_dict
[
'public-ipv4'
],
'test-path'
)
self
.
assertEqual
(
httplib
.
NOT_FOUND
,
result_http
.
status_code
)
# rewrite SR/bin/is-icmp-packet-lost
fname
=
os
.
path
.
join
(
self
.
software_path
,
'bin'
,
'is-icmp-packet-lost'
)
self
.
assertTrue
(
os
.
path
.
isfile
(
fname
))
open
(
fname
,
'w'
).
write
(
'echo "$@"'
)
# call the monitor for this partition
monitor_file
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'promise'
,
'check-_monitor-ipv4-test-unsafe-ipv4-packet-list-test'
))[
0
]
self
.
instance_path
,
'*'
,
'etc'
,
'plugin'
,
'check-_monitor-ipv4-test-unsafe-ipv4-packet-list-test.py'
))[
0
]
# get promise module and check that parameters are ok
self
.
assertEqual
(
'-4 -a ${section:option} afternewline ipv4'
,
subprocess_output
(
monitor_file
).
strip
()
getPluginParameterDict
(
self
.
software_path
,
monitor_file
),
{
'frequency'
:
'720'
,
'ipv4'
:
'true'
,
'address'
:
'${section:option}
\n
afternewline ipv4'
,
}
)
def
test_monitor_ipv6_test_unsafe
(
self
):
...
...
@@ -4072,19 +4124,17 @@ https://www.google.com {}""",
parameter_dict
[
'domain'
],
parameter_dict
[
'public-ipv4'
],
'test-path'
)
self
.
assertEqual
(
httplib
.
NOT_FOUND
,
result_http
.
status_code
)
# rewrite SR/bin/is-icmp-packet-lost
fname
=
os
.
path
.
join
(
self
.
software_path
,
'bin'
,
'is-icmp-packet-lost'
)
self
.
assertTrue
(
os
.
path
.
isfile
(
fname
))
open
(
fname
,
'w'
).
write
(
'echo "$@"'
)
# call the monitor for this partition
monitor_file
=
glob
.
glob
(
os
.
path
.
join
(
self
.
instance_path
,
'*'
,
'etc'
,
'promise'
,
'check-_monitor-ipv6-test-unsafe-ipv6-packet-list-test'
))[
0
]
self
.
instance_path
,
'*'
,
'etc'
,
'plugin'
,
'check-_monitor-ipv6-test-unsafe-ipv6-packet-list-test.py'
))[
0
]
# get promise module and check that parameters are ok
self
.
assertEqual
(
'-a ${section:option} afternewline ipv6'
,
subprocess_output
(
monitor_file
).
strip
()
getPluginParameterDict
(
self
.
software_path
,
monitor_file
),
{
'frequency'
:
'720'
,
'address'
:
'${section:option}
\n
afternewline ipv6'
}
)
def
test_ssl_key_ssl_crt_unsafe
(
self
):
...
...
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestDefaultMonitorHttpdPort.test_plugin_list-CADDY.txt
deleted
100644 → 0
View file @
efca397e
TestDefaultMonitorHttpdPort-0/etc/plugin/__init__.py
TestDefaultMonitorHttpdPort-0/etc/plugin/buildout-TestDefaultMonitorHttpdPort-0-status.py
TestDefaultMonitorHttpdPort-0/etc/plugin/check-free-disk-space.py
TestDefaultMonitorHttpdPort-0/etc/plugin/monitor-bootstrap-status.py
TestDefaultMonitorHttpdPort-1/etc/plugin/buildout-TestDefaultMonitorHttpdPort-1-status.py
TestDefaultMonitorHttpdPort-1/etc/plugin/check-free-disk-space.py
TestDefaultMonitorHttpdPort-1/etc/plugin/monitor-bootstrap-status.py
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestDefaultMonitorHttpdPort.test_promise_list-CADDY.txt
deleted
100644 → 0
View file @
efca397e
TestDefaultMonitorHttpdPort-0/etc/promise/monitor-http-frontend
TestDefaultMonitorHttpdPort-0/etc/promise/monitor-httpd-listening-on-tcp
TestDefaultMonitorHttpdPort-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestDefaultMonitorHttpdPort-1/etc/promise/caddy-frontend-is-running-actual-software-release
TestDefaultMonitorHttpdPort-1/etc/promise/caddy_cached
TestDefaultMonitorHttpdPort-1/etc/promise/caddy_frontend_ipv4_http
TestDefaultMonitorHttpdPort-1/etc/promise/caddy_frontend_ipv4_https
TestDefaultMonitorHttpdPort-1/etc/promise/caddy_frontend_ipv6_http
TestDefaultMonitorHttpdPort-1/etc/promise/caddy_frontend_ipv6_https
TestDefaultMonitorHttpdPort-1/etc/promise/caddy_ssl_cached
TestDefaultMonitorHttpdPort-1/etc/promise/check-_test-error-log-last-day
TestDefaultMonitorHttpdPort-1/etc/promise/check-_test-error-log-last-hour
TestDefaultMonitorHttpdPort-1/etc/promise/frontend-caddy-configuration-promise
TestDefaultMonitorHttpdPort-1/etc/promise/monitor-http-frontend
TestDefaultMonitorHttpdPort-1/etc/promise/monitor-httpd-listening-on-tcp
TestDefaultMonitorHttpdPort-1/etc/promise/nginx-configuration-promise
TestDefaultMonitorHttpdPort-1/etc/promise/nginx_frontend_ipv4_http
TestDefaultMonitorHttpdPort-1/etc/promise/nginx_frontend_ipv4_https
TestDefaultMonitorHttpdPort-1/etc/promise/nginx_frontend_ipv6_http
TestDefaultMonitorHttpdPort-1/etc/promise/nginx_frontend_ipv6_https
TestDefaultMonitorHttpdPort-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestDefaultMonitorHttpdPort-1/etc/promise/promise-nginx-is-process-older-than-dependency-set
TestDefaultMonitorHttpdPort-1/etc/promise/re6st-connectivity
TestDefaultMonitorHttpdPort-1/etc/promise/trafficserver-cache-availability
TestDefaultMonitorHttpdPort-1/etc/promise/trafficserver-port-listening
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestDefaultMonitorHttpdPort.test_promise_run_plugin-CADDY.txt
0 → 100644
View file @
724d5550
TestDefaultMonitorHttpdPort-0/etc/plugin/buildout-TestDefaultMonitorHttpdPort-0-status.py: OK
TestDefaultMonitorHttpdPort-0/etc/plugin/check-free-disk-space.py: OK
TestDefaultMonitorHttpdPort-0/etc/plugin/monitor-bootstrap-status.py: OK
TestDefaultMonitorHttpdPort-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
TestDefaultMonitorHttpdPort-1/etc/plugin/buildout-TestDefaultMonitorHttpdPort-1-status.py: OK
TestDefaultMonitorHttpdPort-1/etc/plugin/caddy_cached.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/caddy_frontend_ipv4_http.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/caddy_frontend_ipv4_https.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/caddy_frontend_ipv6_http.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/caddy_frontend_ipv6_https.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/caddy_ssl_cached.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/check-_test-error-log-last-day.py: OK
TestDefaultMonitorHttpdPort-1/etc/plugin/check-_test-error-log-last-hour.py: OK
TestDefaultMonitorHttpdPort-1/etc/plugin/check-free-disk-space.py: OK
TestDefaultMonitorHttpdPort-1/etc/plugin/frontend-caddy-configuration-promise.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/monitor-bootstrap-status.py: OK
TestDefaultMonitorHttpdPort-1/etc/plugin/monitor-httpd-listening-on-tcp.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/nginx-configuration-promise.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/nginx_frontend_ipv4_http.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/nginx_frontend_ipv4_https.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/nginx_frontend_ipv6_http.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/nginx_frontend_ipv6_https.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/re6st-connectivity.py: OK
TestDefaultMonitorHttpdPort-1/etc/plugin/trafficserver-cache-availability.py: ERROR
TestDefaultMonitorHttpdPort-1/etc/plugin/trafficserver-port-listening.py: ERROR
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestDefaultMonitorHttpdPort.test_promise_run_promise-CADDY.txt
0 → 100644
View file @
724d5550
TestDefaultMonitorHttpdPort-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set: OK
TestDefaultMonitorHttpdPort-1/etc/promise/caddy-frontend-is-running-actual-software-release: OK
TestDefaultMonitorHttpdPort-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set: OK
TestDefaultMonitorHttpdPort-1/etc/promise/promise-nginx-is-process-older-than-dependency-set: OK
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestDuplicateSiteKeyProtection.test_plugin_list-CADDY.txt
deleted
100644 → 0
View file @
efca397e
TestDuplicateSiteKeyProtection-0/etc/plugin/__init__.py
TestDuplicateSiteKeyProtection-0/etc/plugin/buildout-TestDuplicateSiteKeyProtection-0-status.py
TestDuplicateSiteKeyProtection-0/etc/plugin/check-free-disk-space.py
TestDuplicateSiteKeyProtection-0/etc/plugin/monitor-bootstrap-status.py
TestDuplicateSiteKeyProtection-1/etc/plugin/__init__.py
TestDuplicateSiteKeyProtection-1/etc/plugin/buildout-TestDuplicateSiteKeyProtection-1-status.py
TestDuplicateSiteKeyProtection-1/etc/plugin/check-free-disk-space.py
TestDuplicateSiteKeyProtection-1/etc/plugin/monitor-bootstrap-status.py
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestDuplicateSiteKeyProtection.test_promise_list-CADDY.txt
deleted
100644 → 0
View file @
efca397e
TestDuplicateSiteKeyProtection-0/etc/promise/monitor-http-frontend
TestDuplicateSiteKeyProtection-0/etc/promise/monitor-httpd-listening-on-tcp
TestDuplicateSiteKeyProtection-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestDuplicateSiteKeyProtection-1/etc/promise/caddy-frontend-is-running-actual-software-release
TestDuplicateSiteKeyProtection-1/etc/promise/caddy_cached
TestDuplicateSiteKeyProtection-1/etc/promise/caddy_frontend_ipv4_http
TestDuplicateSiteKeyProtection-1/etc/promise/caddy_frontend_ipv4_https
TestDuplicateSiteKeyProtection-1/etc/promise/caddy_frontend_ipv6_http
TestDuplicateSiteKeyProtection-1/etc/promise/caddy_frontend_ipv6_https
TestDuplicateSiteKeyProtection-1/etc/promise/caddy_ssl_cached
TestDuplicateSiteKeyProtection-1/etc/promise/check-_site_2-error-log-last-day
TestDuplicateSiteKeyProtection-1/etc/promise/check-_site_2-error-log-last-hour
TestDuplicateSiteKeyProtection-1/etc/promise/frontend-caddy-configuration-promise
TestDuplicateSiteKeyProtection-1/etc/promise/monitor-http-frontend
TestDuplicateSiteKeyProtection-1/etc/promise/monitor-httpd-listening-on-tcp
TestDuplicateSiteKeyProtection-1/etc/promise/nginx-configuration-promise
TestDuplicateSiteKeyProtection-1/etc/promise/nginx_frontend_ipv4_http
TestDuplicateSiteKeyProtection-1/etc/promise/nginx_frontend_ipv4_https
TestDuplicateSiteKeyProtection-1/etc/promise/nginx_frontend_ipv6_http
TestDuplicateSiteKeyProtection-1/etc/promise/nginx_frontend_ipv6_https
TestDuplicateSiteKeyProtection-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestDuplicateSiteKeyProtection-1/etc/promise/promise-nginx-is-process-older-than-dependency-set
TestDuplicateSiteKeyProtection-1/etc/promise/re6st-connectivity
TestDuplicateSiteKeyProtection-1/etc/promise/trafficserver-cache-availability
TestDuplicateSiteKeyProtection-1/etc/promise/trafficserver-port-listening
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestDuplicateSiteKeyProtection.test_promise_run_plugin-CADDY.txt
0 → 100644
View file @
724d5550
TestDuplicateSiteKeyProtection-0/etc/plugin/buildout-TestDuplicateSiteKeyProtection-0-status.py: OK
TestDuplicateSiteKeyProtection-0/etc/plugin/check-free-disk-space.py: OK
TestDuplicateSiteKeyProtection-0/etc/plugin/monitor-bootstrap-status.py: OK
TestDuplicateSiteKeyProtection-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/buildout-TestDuplicateSiteKeyProtection-1-status.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/caddy_cached.py: ERROR
TestDuplicateSiteKeyProtection-1/etc/plugin/caddy_frontend_ipv4_http.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/caddy_frontend_ipv4_https.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/caddy_frontend_ipv6_http.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/caddy_frontend_ipv6_https.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/caddy_ssl_cached.py: ERROR
TestDuplicateSiteKeyProtection-1/etc/plugin/check-_site_2-error-log-last-day.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/check-_site_2-error-log-last-hour.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/check-free-disk-space.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/frontend-caddy-configuration-promise.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/monitor-bootstrap-status.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/nginx-configuration-promise.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/nginx_frontend_ipv4_http.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/nginx_frontend_ipv4_https.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/nginx_frontend_ipv6_http.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/nginx_frontend_ipv6_https.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/re6st-connectivity.py: OK
TestDuplicateSiteKeyProtection-1/etc/plugin/trafficserver-cache-availability.py: ERROR
TestDuplicateSiteKeyProtection-1/etc/plugin/trafficserver-port-listening.py: OK
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestDuplicateSiteKeyProtection.test_promise_run_promise-CADDY.txt
0 → 100644
View file @
724d5550
TestDuplicateSiteKeyProtection-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set: OK
TestDuplicateSiteKeyProtection-1/etc/promise/caddy-frontend-is-running-actual-software-release: OK
TestDuplicateSiteKeyProtection-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set: OK
TestDuplicateSiteKeyProtection-1/etc/promise/promise-nginx-is-process-older-than-dependency-set: OK
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlave.test_plugin_list-CADDY.txt
deleted
100644 → 0
View file @
efca397e
TestEnableHttp2ByDefaultDefaultSlave-0/etc/plugin/__init__.py
TestEnableHttp2ByDefaultDefaultSlave-0/etc/plugin/buildout-TestEnableHttp2ByDefaultDefaultSlave-0-status.py
TestEnableHttp2ByDefaultDefaultSlave-0/etc/plugin/check-free-disk-space.py
TestEnableHttp2ByDefaultDefaultSlave-0/etc/plugin/monitor-bootstrap-status.py
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/__init__.py
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/buildout-TestEnableHttp2ByDefaultDefaultSlave-1-status.py
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/check-free-disk-space.py
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/monitor-bootstrap-status.py
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlave.test_promise_list-CADDY.txt
deleted
100644 → 0
View file @
efca397e
TestEnableHttp2ByDefaultDefaultSlave-0/etc/promise/monitor-http-frontend
TestEnableHttp2ByDefaultDefaultSlave-0/etc/promise/monitor-httpd-listening-on-tcp
TestEnableHttp2ByDefaultDefaultSlave-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/caddy-frontend-is-running-actual-software-release
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/caddy_cached
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/caddy_frontend_ipv4_http
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/caddy_frontend_ipv4_https
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/caddy_frontend_ipv6_http
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/caddy_frontend_ipv6_https
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/caddy_ssl_cached
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/check-_enable-http2-default-error-log-last-day
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/check-_enable-http2-default-error-log-last-hour
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/check-_enable-http2-false-error-log-last-day
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/check-_enable-http2-false-error-log-last-hour
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/check-_enable-http2-true-error-log-last-day
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/check-_enable-http2-true-error-log-last-hour
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/frontend-caddy-configuration-promise
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/monitor-http-frontend
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/monitor-httpd-listening-on-tcp
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/nginx-configuration-promise
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/nginx_frontend_ipv4_http
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/nginx_frontend_ipv4_https
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/nginx_frontend_ipv6_http
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/nginx_frontend_ipv6_https
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/promise-nginx-is-process-older-than-dependency-set
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/re6st-connectivity
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/trafficserver-cache-availability
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/trafficserver-port-listening
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlave.test_promise_run_plugin-CADDY.txt
0 → 100644
View file @
724d5550
TestEnableHttp2ByDefaultDefaultSlave-0/etc/plugin/buildout-TestEnableHttp2ByDefaultDefaultSlave-0-status.py: OK
TestEnableHttp2ByDefaultDefaultSlave-0/etc/plugin/check-free-disk-space.py: OK
TestEnableHttp2ByDefaultDefaultSlave-0/etc/plugin/monitor-bootstrap-status.py: OK
TestEnableHttp2ByDefaultDefaultSlave-0/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/buildout-TestEnableHttp2ByDefaultDefaultSlave-1-status.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/caddy_cached.py: ERROR
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/caddy_frontend_ipv4_http.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/caddy_frontend_ipv4_https.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/caddy_frontend_ipv6_http.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/caddy_frontend_ipv6_https.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/caddy_ssl_cached.py: ERROR
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/check-_enable-http2-default-error-log-last-day.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/check-_enable-http2-default-error-log-last-hour.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/check-_enable-http2-false-error-log-last-day.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/check-_enable-http2-false-error-log-last-hour.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/check-_enable-http2-true-error-log-last-day.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/check-_enable-http2-true-error-log-last-hour.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/check-free-disk-space.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/frontend-caddy-configuration-promise.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/monitor-bootstrap-status.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/monitor-httpd-listening-on-tcp.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/nginx-configuration-promise.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/nginx_frontend_ipv4_http.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/nginx_frontend_ipv4_https.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/nginx_frontend_ipv6_http.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/nginx_frontend_ipv6_https.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/re6st-connectivity.py: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/trafficserver-cache-availability.py: ERROR
TestEnableHttp2ByDefaultDefaultSlave-1/etc/plugin/trafficserver-port-listening.py: ERROR
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlave.test_promise_run_promise-CADDY.txt
0 → 100644
View file @
724d5550
TestEnableHttp2ByDefaultDefaultSlave-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/caddy-frontend-is-running-actual-software-release: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set: OK
TestEnableHttp2ByDefaultDefaultSlave-1/etc/promise/promise-nginx-is-process-older-than-dependency-set: OK
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2.test_plugin_list-CADDY.txt
deleted
100644 → 0
View file @
efca397e
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-0/etc/plugin/__init__.py
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-0/etc/plugin/buildout-TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-0-status.py
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-0/etc/plugin/check-free-disk-space.py
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-0/etc/plugin/monitor-bootstrap-status.py
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/plugin/__init__.py
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/plugin/buildout-TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1-status.py
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/plugin/check-free-disk-space.py
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/plugin/monitor-bootstrap-status.py
\ No newline at end of file
This diff is collapsed.
Click to expand it.
software/caddy-frontend/test/test_data/test.TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2.test_promise_list-CADDY.txt
deleted
100644 → 0
View file @
efca397e
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-0/etc/promise/monitor-http-frontend
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-0/etc/promise/monitor-httpd-listening-on-tcp
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-0/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/caddy-frontend-is-running-actual-software-release
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/caddy_cached
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/caddy_frontend_ipv4_http
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/caddy_frontend_ipv4_https
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/caddy_frontend_ipv6_http
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/caddy_frontend_ipv6_https
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/caddy_ssl_cached
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/check-_enable-http2-default-error-log-last-day
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/check-_enable-http2-default-error-log-last-hour
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/check-_enable-http2-false-error-log-last-day
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/check-_enable-http2-false-error-log-last-hour
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/check-_enable-http2-true-error-log-last-day
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/check-_enable-http2-true-error-log-last-hour
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/frontend-caddy-configuration-promise
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/monitor-http-frontend
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/monitor-httpd-listening-on-tcp
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/nginx-configuration-promise
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/nginx_frontend_ipv4_http
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/nginx_frontend_ipv4_https
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/nginx_frontend_ipv6_http
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/nginx_frontend_ipv6_https
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/promise-monitor-httpd-is-process-older-than-dependency-set
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/promise-nginx-is-process-older-than-dependency-set
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/re6st-connectivity
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/trafficserver-cache-availability
TestEnableHttp2ByDefaultDefaultSlaveGlobalDisableHttp2-1/etc/promise/trafficserver-port-listening
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Prev
1
2
3
4
5
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment