Commit 59db47c0 authored by Łukasz Nowak's avatar Łukasz Nowak

software/slaprunner: Fix switch to monitor-promise-base

parent bd7a1199
...@@ -14,11 +14,11 @@ ...@@ -14,11 +14,11 @@
# not need these here). # not need these here).
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = 317c49bf451e80bf0f9d44baa603861e md5sum = 8b78e32b877d591400746ec7fd68ed4c
[template-runner] [template-runner]
filename = instance-runner.cfg filename = instance-runner.cfg
md5sum = bacb2d1a38d3a512025e861debdc75b2 md5sum = 85ea0b78fd18428c242438ebe95f980b
[template-runner-import-script] [template-runner-import-script]
filename = template/runner-import.sh.jinja2 filename = template/runner-import.sh.jinja2
...@@ -26,7 +26,7 @@ md5sum = fc22e2d2f03ce58631f157a5b4943e15 ...@@ -26,7 +26,7 @@ md5sum = fc22e2d2f03ce58631f157a5b4943e15
[instance-runner-import] [instance-runner-import]
filename = instance-runner-import.cfg.in filename = instance-runner-import.cfg.in
md5sum = 1f1c62f2bc09a6ab3a2f96eacdf99492 md5sum = b450c474464a326f3d0b98728460ac97
[instance-runner-export] [instance-runner-export]
filename = instance-runner-export.cfg.in filename = instance-runner-export.cfg.in
...@@ -34,7 +34,7 @@ md5sum = b992bb3391de9d6d422bfa8011d8ffc4 ...@@ -34,7 +34,7 @@ md5sum = b992bb3391de9d6d422bfa8011d8ffc4
[template-resilient] [template-resilient]
filename = instance-resilient.cfg.jinja2 filename = instance-resilient.cfg.jinja2
md5sum = 0f3d75ca834839c5ae04e9c26cca289a md5sum = 2271c829b94542b7b2d9c589376ae538
[template_nginx_conf] [template_nginx_conf]
filename = nginx_conf.in filename = nginx_conf.in
......
...@@ -26,6 +26,9 @@ eggs-directory = {{ eggs_directory }} ...@@ -26,6 +26,9 @@ eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }} develop-eggs-directory = {{ develop_eggs_directory }}
offline = true offline = true
extends =
{{ monitor_template }}
# += because we need to take up parts (like instance-custom, slapmonitor etc) from the profile we extended # += because we need to take up parts (like instance-custom, slapmonitor etc) from the profile we extended
parts += parts +=
publish-early publish-early
......
...@@ -112,7 +112,7 @@ context = ...@@ -112,7 +112,7 @@ context =
raw restore_exit_code_file ${:restore-exit-code-file} raw restore_exit_code_file ${:restore-exit-code-file}
raw restore_error_message_file ${:restore-error-message-file} raw restore_error_message_file ${:restore-error-message-file}
[importer-consistency-promise] [importer-consistency-promise-bin]
# Test that the importer script and "after-import" subscripts # Test that the importer script and "after-import" subscripts
# are not older than 2 days (1 day + some slack), and have succeeded # are not older than 2 days (1 day + some slack), and have succeeded
recipe = collective.recipe.template recipe = collective.recipe.template
...@@ -135,10 +135,16 @@ input = inline: #!/bin/sh ...@@ -135,10 +135,16 @@ input = inline: #!/bin/sh
fi fi
fi fi
exit 1; # Something else went wrong exit 1; # Something else went wrong
output = ${directory:promises}/importer-consistency-promise output = ${directory:bin}/importer-consistency-promise
mode = 755 mode = 755
[software-release-deployment-promise] [importer-consistency-promise]
<= monitor-promise-base
module = check_command_execute
name = importer-consistency-promise.py
config-command = ${importer-consistency-promise-bin:output}
[software-release-deployment-bin]
recipe = collective.recipe.template recipe = collective.recipe.template
input = inline: #!/bin/sh input = inline: #!/bin/sh
PROJECT_FILE=$(find "${directory:etc}" -maxdepth 1 -name .project) PROJECT_FILE=$(find "${directory:etc}" -maxdepth 1 -name .project)
...@@ -153,9 +159,15 @@ input = inline: #!/bin/sh ...@@ -153,9 +159,15 @@ input = inline: #!/bin/sh
fi fi
fi fi
exit 1 exit 1
output = ${directory:promises}/software-release-deployment-promise output = ${directory:bin}/software-release-deployment-promise
mode = 755 mode = 755
[software-release-deployment-promise]
<= monitor-promise-base
module = check_command_execute
name = software-release-deployment-promise.py
config-command =${software-release-deployment-bin:output}
[resilient-software-release-information] [resilient-software-release-information]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = {{ software_release_information_template }} url = {{ software_release_information_template }}
......
...@@ -85,20 +85,18 @@ config-url = {{ slapparameter_dict.get('custom-frontend-backend-url') }} ...@@ -85,20 +85,18 @@ config-url = {{ slapparameter_dict.get('custom-frontend-backend-url') }}
return = site_url domain return = site_url domain
[custom-frontend-promise] [custom-frontend-promise]
recipe = slapos.cookbook:check_url_available <= monitor-promise-base
path = $${directory:promises}/custom_frontend_promise module = check_url_available
url = https://$${request-custom-frontend:connection-domain} name = custom_frontend_promise.py
config-url = https://$${request-custom-frontend:connection-domain}
{% if slapparameter_dict.get('custom-frontend-basic-auth') -%} {% if slapparameter_dict.get('custom-frontend-basic-auth') -%}
check-secure = 1 config-check-secure = 1
{% endif -%} {% endif -%}
dash_path = {{ dash_executable_location }}
curl_path = {{ curl_executable_location }}
[custom-frontend-url-ready-promise] [custom-frontend-url-ready-promise-bin]
Please register or sign in to reply
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
path = $${directory:promises}/custom_frontend_ready_promise
url = https://$${request-custom-frontend:connection-domain} url = https://$${request-custom-frontend:connection-domain}
rendered = $${directory:promises}/custom_frontend_ready_promise rendered = $${directory:bin}/custom_frontend_ready_promise
template = inline: template = inline:
#!{{ dash_executable_location }} #!{{ dash_executable_location }}
...@@ -110,6 +108,12 @@ template = inline: ...@@ -110,6 +108,12 @@ template = inline:
exit 1 exit 1
fi fi
[custom-frontend-url-ready-promise]
<= monitor-promise-base
module = check_command_execute
name = custom_frontend_ready_promise.py
config-command = $${custom-frontend-url-ready-promise-bin:rendered}
[publish-connection-information] [publish-connection-information]
custom-frontend-url = $${custom-frontend-url-ready-promise:url} custom-frontend-url = $${custom-frontend-url-ready-promise:url}
  • here:

    [2019-11-28 19:51:36,477] INFO     Installing switch_softwaretype.
    [2019-11-28 19:51:36,477] INFO     switch_softwaretype: Invoking commandline : '/opt/slapgrid/633edf3510136e903494ec350a9bd818/bin/buildout -U -c /srv/slapgrid/slappart11/buildout-switch_softwaretype.cfg'
    [2019-11-28 19:51:36,477] INFO     While:
    [2019-11-28 19:51:36,477] INFO       Installing.
    [2019-11-28 19:51:36,477] INFO       Getting section publish-connection-information.
    [2019-11-28 19:51:36,477] INFO       Initializing section publish-connection-information.
    [2019-11-28 19:51:36,478] INFO       Getting option publish-connection-information:custom-frontend-url.
    [2019-11-28 19:51:36,478] INFO     Error: Referenced option does not exist: custom-frontend-url-ready-promise url
    Edited by Thomas Gambier
Please register or sign in to reply
{% endif %} {% endif %}
...@@ -135,7 +139,6 @@ ssh = $${:etc}/ssh/ ...@@ -135,7 +139,6 @@ ssh = $${:etc}/ssh/
log = $${:var}/log/ log = $${:var}/log/
run = $${:var}/run/ run = $${:var}/run/
backup = $${:srv}/backup/ backup = $${:srv}/backup/
promises = $${:etc}/promise/
test = $${:etc}/test/ test = $${:etc}/test/
nginx-data = $${:srv}/nginx nginx-data = $${:srv}/nginx
ca-dir = $${:srv}/ssl ca-dir = $${:srv}/ssl
...@@ -476,13 +479,12 @@ output = $${directory:scripts}/slaprunner-httpd-graceful ...@@ -476,13 +479,12 @@ output = $${directory:scripts}/slaprunner-httpd-graceful
mode = 700 mode = 700
[apache-httpd-promise] [apache-httpd-promise]
recipe = slapos.cookbook:check_url_available <= monitor-promise-base
path = $${directory:promises}/$${:filename} module = check_url_available
name = $${:filename}.py
filename = apache-httpd-listening-on-tcp filename = apache-httpd-listening-on-tcp
url = $${apache-httpd:access-url} config-url = $${apache-httpd:access-url}
check-secure = 1 config-check-secure = 1
dash_path = {{ dash_executable_location }}
curl_path = {{ curl_executable_location }}
[slaprunner-httpd-cors] [slaprunner-httpd-cors]
recipe = plone.recipe.command recipe = plone.recipe.command
...@@ -579,12 +581,11 @@ config-domain = $${slap-parameter:frontend-domain} ...@@ -579,12 +581,11 @@ config-domain = $${slap-parameter:frontend-domain}
return = site_url domain return = site_url domain
[slaprunner-frontend-promise] [slaprunner-frontend-promise]
recipe = slapos.cookbook:check_url_available <= monitor-promise-base
path = $${directory:promises}/slaprunner_frontend module = check_url_available
url = https://$${request-frontend:connection-domain}/login name = slaprunner_frontend.py
dash_path = ${dash:location}/bin/dash config-url = https://$${request-frontend:connection-domain}/login
curl_path = ${curl:location}/bin/curl config-check-secure = 1
check-secure = 1
[request-httpd-frontend] [request-httpd-frontend]
<= slap-connection <= slap-connection
...@@ -600,12 +601,11 @@ config-domain = ...@@ -600,12 +601,11 @@ config-domain =
return = secure_access domain return = secure_access domain
[httpd-frontend-promise] [httpd-frontend-promise]
recipe = slapos.cookbook:check_url_available <= monitor-promise-base
path = $${directory:promises}/slaprunner-apache-http-frontend module = check_url_available
url = $${request-httpd-frontend:connection-secure_access} name = slaprunner-apache-http-frontend.py
dash_path = {{ dash_executable_location }} config-url = $${request-httpd-frontend:connection-secure_access}
curl_path = {{ curl_executable_location }} config-check-secure = 1
check-secure = 1
{% endif %} {% endif %}
...@@ -667,16 +667,18 @@ monitor-password = $${monitor-publish-parameters:monitor-password} ...@@ -667,16 +667,18 @@ monitor-password = $${monitor-publish-parameters:monitor-password}
#-- Deploy promises scripts #-- Deploy promises scripts
[slaprunner-promise] [slaprunner-promise]
recipe = slapos.cookbook:check_port_listening <= monitor-promise-base
path = $${directory:promises}/slaprunner module = check_port_listening
hostname = $${slaprunner:ipv6} name = slaprunner.py
port = $${slaprunner:runner_port} config-hostname = $${slaprunner:ipv6}
config-port = $${slaprunner:runner_port}
[runner-sshd-promise] [runner-sshd-promise]
recipe = slapos.cookbook:check_port_listening <= monitor-promise-base
path = $${directory:promises}/runner-sshd module = check_port_listening
hostname = $${slap-network-information:global-ipv6} name = runner-sshd.py
port = $${runner-sshd-port:port} config-hostname = $${slap-network-information:global-ipv6}
config-port = $${runner-sshd-port:port}
[symlinks] [symlinks]
recipe = cns.recipe.symlink recipe = cns.recipe.symlink
...@@ -891,10 +893,11 @@ name = slapgrid ...@@ -891,10 +893,11 @@ name = slapgrid
log = $${runnerdirectory:home}/instance/*/.slapgrid/log/instance.log $${runnerdirectory:home}/instance/*/.slapgrid/promise/log/*.log log = $${runnerdirectory:home}/instance/*/.slapgrid/log/instance.log $${runnerdirectory:home}/instance/*/.slapgrid/promise/log/*.log
[supervisord-promise] [supervisord-promise]
recipe = slapos.cookbook:check_port_listening <= monitor-promise-base
path = $${directory:promises}/supervisord module = check_port_listening
hostname = $${slaprunner:ipv4} name = supervisord.py
port = $${supervisord:port} config-hostname = $${slaprunner:ipv4}
config-port = $${supervisord:port}
# XXX Monitor # XXX Monitor
[monitor-instance-parameter] [monitor-instance-parameter]
......
...@@ -42,6 +42,7 @@ context = key buildout buildout:bin-directory ...@@ -42,6 +42,7 @@ context = key buildout buildout:bin-directory
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
key eggs_directory buildout:eggs-directory key eggs_directory buildout:eggs-directory
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
raw monitor_template ${monitor-template:rendered}
template-parts-destination = ${template-parts:target} template-parts-destination = ${template-parts:target}
template-replicated-destination = ${template-replicated:target} template-replicated-destination = ${template-replicated:target}
import-list = file parts :template-parts-destination import-list = file parts :template-parts-destination
......
  • In order to fix, I suggest this commit : tomo/slapos@a514a2b3

    I tested in production and it works

  • I will pick up your commit, add a test for it and will push it on nexedi/master ASAP. Thanks for catching this issue!

Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment