Commit 460909b7 authored by Hardik Juneja's avatar Hardik Juneja

abc

parent 17fd0fbf
......@@ -15,11 +15,11 @@
# not need these here).
[template]
filename = instance.cfg
md5sum = 713db528880282d568278f09458d2aab
md5sum = 73c7bd7dec7f874e8423d0ff4eba9427
[template-runner]
filename = instance-runner.cfg
md5sum = 8f49df215a1596efcec94e2cca009711
md5sum = c531ca046e137459d6cccb261eb7e540
[template-runner-import-script]
filename = template/runner-import.sh.jinja2
......
......@@ -41,7 +41,7 @@ parts =
## Usability part
template-slapuser-script
extends = ${monitor2-template:rendered}
extends = {{template_monitor}}
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
......
......@@ -30,6 +30,7 @@ context = key buildout buildout:bin-directory
raw curl_executable_location ${curl:location}/bin/curl
raw dash_executable_location ${dash:location}/bin/dash
raw dcron_executable_location ${dcron:location}/sbin/crond
raw template_monitor ${instance-monitor:rendered}
mode = 0644
[instance-resilient]
......@@ -78,6 +79,13 @@ context =
raw pbsready_import_template_path ${pbsready-import:output}
raw software_release_information_template ${template-resilient-software-release-information:destination}/${template-resilient-software-release-information:filename}
[instance-monitor]
recipe = slapos.recipe.template:jinja2
template = $monitor2-template:output
rendered = ${buildout:directory}/template-monitor.cfg
extensions = jinja2.ext.do
mode = 0644
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration
computer = $${slap-connection:computer-id}
......
......@@ -296,7 +296,7 @@ context =
key template_kumofs template-kumofs:target
key template_mariadb template-mariadb:target
key template_mariadb_initial_setup template-mariadb-initial-setup:target
key template_monitor monitor2-template:rendered
key template_monitor monitor2-template:output
key template_my_cnf template-my-cnf:target
key template_postfix template-postfix:target
key template_postfix_aliases template-postfix-aliases:target
......
......@@ -23,15 +23,15 @@ md5sum = dc974bd74cf967ae6250d81322629c44
[template-mariadb]
filename = instance-mariadb.cfg.in
md5sum = 1894a05674a7f670692bb2e12ff44d9c
md5sum = 7a51373f53ce075c58a7793abb9d1db5
[template-kumofs]
filename = instance-kumofs.cfg.in
md5sum = 5ac90bdfd30156822b9702a8b73a4d8e
md5sum = a6dcb93c8d2e34ecde07a3f79280ca51
[template-cloudooo]
filename = instance-cloudoo.cfg.in
md5sum = 53a669a7fd42c14596ad7d3a79dfe760
md5sum = d19c02f05b71fe23db248b5cbaf0d4ce
[template-zope-conf]
filename = zope.conf.in
......@@ -75,7 +75,7 @@ md5sum = 0969fbb25b05c02ef3c2d437b2f4e1a0
[template]
filename = instance.cfg.in
md5sum = 09862389b2bf3da3f9387a6424329da9
md5sum = 1df9a589da262c3de6df1a73d5bb0a37
[monitor-template-dummy]
filename = dummy.cfg
......@@ -83,19 +83,19 @@ md5sum = d41d8cd98f00b204e9800998ecf8427e
[template-erp5]
filename = instance-erp5.cfg.in
md5sum = b8cb62bbbcbd7d85258aa63b14be9a20
md5sum = 3f5eac64afbeba450e64888cbfed29ee
[template-zeo]
filename = instance-zeo.cfg.in
md5sum = d04d0f67e399543004f5f363ff448052
md5sum = 165ba64a6db5219e24d781e5019401b9
[template-zope]
filename = instance-zope.cfg.in
md5sum = f08e4750f66a3aa27c9379ae278bdd8c
md5sum = 8a507ce5f4cddfa0baf3b7561dc14539
[template-balancer]
filename = instance-balancer.cfg.in
md5sum = 865efaf767a747d263edad9108a76191
md5sum = a3ad32c46bb56076895441edbd66018d
[template-haproxy-cfg]
filename = haproxy.cfg.in
......
......@@ -230,9 +230,6 @@ monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ next_port() }}
monitor-title = Balancer monitor
password = {{ slapparameter_dict['monitor-passwd'] }}
{% if slapparameter_dict.get('monitor-disable-apache') -%}
monitor-base-url =
{% endif -%}
instance-configuration =
file apachedex-default ${apachedex-parameters:default}
file apachedex-base-list ${apachedex-parameters:base-list}
......
......@@ -113,9 +113,6 @@ framebuffer = ${:srv}/framebuffer
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ tcpv4_port + 2 }}
monitor-title = Cloudooo monitor
{% if slapparameter_dict.get('monitor-disable-apache') -%}
monitor-base-url =
{% endif -%}
password = {{ slapparameter_dict['monitor-passwd'] }}
[binary-link]
......
......@@ -39,10 +39,10 @@ config-{{ k }} = {{ '${' ~ v ~ '}' }}
{% endfor -%}
{% endmacro -%}
{{ request('memcached-persistent', 'kumofs', 'kumofs', {'tcpv4-port': 2000, 'monitor-disable-apache': monitor_dict.get('disable-apache')}, {'url': True, 'monitor-base-url': False}, key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{{ request('memcached-volatile', 'kumofs', 'memcached', {'tcpv4-port': 2010, 'ram-storage-size': 64, 'monitor-disable-apache': monitor_dict.get('disable-apache')}, {'url': True, 'monitor-base-url': False}, key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{{ request('cloudooo', 'cloudooo', 'cloudooo', {'tcpv4-port': 2020, 'monitor-disable-apache': monitor_dict.get('disable-apache')}, {'url': True, 'monitor-base-url': False}, key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{{ request('mariadb', 'mariadb', 'mariadb', {'tcpv4-port': 2099, 'monitor-disable-apache': monitor_dict.get('disable-apache')}, {'database-list': True, 'test-database-list': True, 'monitor-base-url': False}, key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{{ request('memcached-persistent', 'kumofs', 'kumofs', {'tcpv4-port': 2000}, {'url': True, 'monitor-base-url': False}, key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{{ request('memcached-volatile', 'kumofs', 'memcached', {'tcpv4-port': 2010, 'ram-storage-size': 64}, {'url': True, 'monitor-base-url': False}, key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{{ request('cloudooo', 'cloudooo', 'cloudooo', {'tcpv4-port': 2020}, {'url': True, 'monitor-base-url': False}, key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{{ request('mariadb', 'mariadb', 'mariadb', {'tcpv4-port': 2099}, {'database-list': True, 'test-database-list': True, 'monitor-base-url': False}, key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{% if has_posftix -%}
{{ request('smtp', 'postfix', 'smtp', {'tcpv4-port': 2025, 'smtpd-sasl-user': 'erp5@nowhere'}, key_config={'smtpd-sasl-password': 'publish-early:smtpd-sasl-password'}) }}
{%- else %}
......@@ -79,7 +79,7 @@ connection-url = smtp://127.0.0.2:0/
{% else -%}
{{ assert(server_type == 'zeo', server_type) -}}
{# BBB: for compatibility, keep 'zodb' as partition_reference for ZEO -#}
{{ request('zodb', 'zodb-' ~ server_type, 'zodb-' ~ server_type, {'tcpv4-port': 2100, 'zodb-dict': server_dict, 'monitor-disable-apache': monitor_dict.get('disable-apache')}, dict.fromkeys(('storage-dict', 'tidstorage-ip', 'tidstorage-port', 'monitor-base-url')), key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{{ request('zodb', 'zodb-' ~ server_type, 'zodb-' ~ server_type, {'tcpv4-port': 2100, 'zodb-dict': server_dict}, dict.fromkeys(('storage-dict', 'tidstorage-ip', 'tidstorage-port', 'monitor-base-url')), key_config={'monitor-passwd': 'monitor-htpasswd:passwd'}) }}
{% endif -%}
{% endfor -%}
......@@ -147,7 +147,6 @@ config-inituser-login = {{ dumps(inituser_login) }}
config-inituser-password = ${publish-early:inituser-password}
config-kumofs-url = ${request-memcached-persistent:connection-url}
config-memcached-url = ${request-memcached-volatile:connection-url}
config-monitor-disable-apache = monitor_dict.get('disable-apache')
config-monitor-passwd = ${monitor-htpasswd:passwd}
config-mysql-test-url-list = ${request-mariadb:connection-test-database-list}
config-mysql-url-list = ${request-mariadb:connection-database-list}
......@@ -260,7 +259,6 @@ config-{{ name }} = {{ ' ${' ~ zope_section_id ~ ':connection-zope-address-list}
config-haproxy-server-check-path = {{ dumps(balancer_dict.get('haproxy-server-check-path', '/') % {'site-id': site_id}) }}
config-backend-path = {{ dumps(balancer_dict.get('apache-backend-path', '/') % {'site-id': site_id}) }}
config-ssl = {{ dumps(balancer_dict.get('ssl', {})) }}
config-monitor-disable-apache = monitor_dict.get('disable-apache')
config-monitor-passwd = ${monitor-htpasswd:passwd}
......@@ -318,9 +316,6 @@ parts +=
[monitor-conf-parameters]
monitor-title = ERP5 monitor
password = ${monitor-htpasswd:passwd}
{% if monitor_dict.get('disable-apache') == True -%}
monitor-base-url =
{% endif -%}
[monitor-base-url-dict]
{% for key, value in monitor_base_url_dict.items() -%}
......
......@@ -114,7 +114,4 @@ port = ${kumofs-instance:manager-port}
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ tcpv4_port + 4 }}
monitor-title = Kumofs monitor
{% if slapparameter_dict.get('monitor-disable-apache') -%}
monitor-base-url =
{% endif -%}
password = {{ slapparameter_dict['monitor-passwd'] }}
......@@ -303,9 +303,6 @@ parameters-extra = true
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ port + 1 }}
monitor-title = Mariadb monitor
{% if slapparameter_dict.get('monitor-disable-apache') -%}
monitor-base-url =
{% endif -%}
password = {{ slapparameter_dict['monitor-passwd'] }}
[buildout]
......
......@@ -187,9 +187,6 @@ tidstorage = {{ tidstorage_repozo_path }}
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ next_port() }}
monitor-title = ZODB monitor
{% if monitor_dict.get('disable-apache') == True -%}
monitor-base-url =
{% endif -%}
password = {{ slapparameter_dict['monitor-passwd'] }}
[buildout]
......
......@@ -396,9 +396,6 @@ bt5-repository-url = {{ dumps(slapparameter_dict['bt5-repository-url']) }}
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ next_port() }}
monitor-title = Zope monitor
{% if monitor_dict.get('disable-apache') == True -%}
monitor-base-url =
{% endif -%}
password = {{ slapparameter_dict['monitor-passwd'] }}
[buildout]
......
......@@ -41,7 +41,7 @@ fonts = {{ fonts_location }}
buildout-bin-directory = {{ buildout_bin_directory }}
6tunnel = {{ sixtunnel_location }}
dash = {{ dash_location }}
template-monitor = {{ dumps(template_monitor) }}
template-monitor = ${instance-monitor:rendered}
[dynamic-template-cloudooo]
<= jinja2-template-base
......@@ -72,7 +72,7 @@ extra-context =
[dynamic-template-erp5-parameters]
jupyter-enable-default = {{ jupyter_enable_default }}
local-bt5-repository = {{ local_bt5_repository }}
template-monitor = {{ dumps(template_monitor) }}
template-monitor = ${instance-monitor:rendered}
[dynamic-template-erp5]
<= jinja2-template-base
......@@ -100,7 +100,7 @@ run-apachedex-location = {{ bin_directory }}/runApacheDex
dash = {{ dash_location }}
template-haproxy-cfg = {{ template_haproxy_cfg }}
template-apache-conf = {{ template_apache_conf }}
template-monitor = {{ dumps(template_monitor) }}
template-monitor = ${instance-monitor:rendered}
[dynamic-template-balancer]
<= jinja2-template-base
......@@ -112,7 +112,7 @@ extra-context =
[dynamic-template-zeo-parameters]
buildout-bin-directory = {{ buildout_bin_directory }}
template-monitor = {{ dumps(template_monitor) }}
template-monitor = ${instance-monitor:rendered}
[dynamic-template-zeo]
<= jinja2-template-base
......@@ -135,7 +135,7 @@ jsl = {{ jsl_location }}
link-binary = {{ dumps(zope_link_binary) }}
userhosts = {{ userhosts_location }}
site-zcml = {{ site_zcml }}
template-monitor = {{ dumps(template_monitor) }}
template-monitor = ${instance-monitor:rendered}
extra-path-list = {{ dumps(extra_path_list) }}
matplotlibrc = {{ matplotlibrc_location }}
......@@ -156,7 +156,7 @@ dcron-location = {{ dcron_location }}
gzip-location = {{ gzip_location }}
kumo-location = {{ kumo_location }}
logrotate-location = {{ logrotate_location }}
template-monitor = {{ dumps(template_monitor) }}
template-monitor = ${instance-monitor:rendered}
[dynamic-template-kumofs]
<= jinja2-template-base
......@@ -178,7 +178,7 @@ bin-directory = {{ bin_directory }}
mariadb-resiliency-after-import-script = {{ mariadb_resiliency_after_import_script }}
mariadb-slow-query-report-script = {{ mariadb_slow_query_report_script }}
percona-tools-location = {{ percona_toolkit_location }}
template-monitor = {{ template_monitor }}
template-monitor = ${instance-monitor:rendered}
[dynamic-template-mariadb]
<= jinja2-template-base
......@@ -205,6 +205,14 @@ extra-context =
[dynamic-template-jupyter]
rendered = {{ template_jupyter_cfg }}
[instance-monitor]
recipe = slapos.recipe.template:jinja2
template = {{ dumps(template_monitor) }}
rendered = ${buildout:directory}/template-monitor.cfg
extensions = jinja2.ext.do
context = key buildout buildout:bin-directory
mode = 0644
[switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype
override = {{ dumps(override_switch_softwaretype |default) }}
......
......@@ -96,10 +96,16 @@ rendered = ${monitor2-template:rendered}
output = ${monitor2-template:rendered}
[monitor2-template]
recipe = slapos.recipe.template:jinja2
filename = template-monitor.cfg
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
filename = instance-monitor.cfg
mode = 0644
output = ${buildout:directory}/template-monitor.cfg
[remove-section]
#recipe = slapos.recipe.template:jinja2
template = ${:_profile_base_location_}/instance-monitor.cfg.jinja2.in
rendered = ${buildout:directory}/template-monitor.cfg
context =
key apache_location apache:location
key gzip_location gzip:location
......
......@@ -14,5 +14,5 @@
# section inheritance (< = ...) are NOT supported (but you should really
# not need these here).
[monitor2-template]
filename = instance-monitor.cfg.jinja2.in
md5sum = 054cedcee5e3b82dca992c9ff45b85cd
filename = instance-monitor.cfg
md5sum = 3d2093fa58da21266d011a752bc2e91f
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised
computer = ${slap-connection:computer-id}
partition = ${slap-connection:partition-id}
url = ${slap-connection:server-url}
key = ${slap-connection:key-file}
cert = ${slap-connection:cert-file}
computer = $${slap-connection:computer-id}
partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
# XXX Default values if doesn't exists
root-instance-title = UNKNOWN H-S
......@@ -12,114 +12,114 @@ instance-title = UNKNOWN Instance
[directory]
recipe = slapos.cookbook:mkdirectory
etc = ${buildout:directory}/etc
bin = ${buildout:directory}/bin
srv = ${buildout:directory}/srv
var = ${buildout:directory}/var
run = ${:var}/run
log = ${:var}/log
scripts = ${:etc}/run
services = ${:etc}/service
promises = ${:etc}/promise
monitor = ${:srv}/monitor
monitor-promise = ${:etc}/monitor-promise
monitor-report = ${:etc}/monitor-report
etc = $${buildout:directory}/etc
bin = $${buildout:directory}/bin
srv = $${buildout:directory}/srv
var = $${buildout:directory}/var
run = $${:var}/run
log = $${:var}/log
scripts = $${:etc}/run
services = $${:etc}/service
promises = $${:etc}/promise
monitor = $${:srv}/monitor
monitor-promise = $${:etc}/monitor-promise
monitor-report = $${:etc}/monitor-report
[monitor-directory]
recipe = slapos.cookbook:mkdirectory
bin = ${directory:bin}
etc = ${directory:etc}
run = ${directory:monitor}/run
#run = ${directory:scripts}
promises = ${directory:monitor-promise}
reports = ${directory:monitor-report}
pids = ${directory:run}/monitor
cgi-bin = ${directory:monitor}/cgi-bin
webdav = ${directory:monitor}/webdav
public = ${directory:monitor}/public
private = ${directory:monitor}/private
services = ${directory:services}
services-conf = ${directory:etc}/monitor.conf.d
log = ${directory:log}/monitor
monitor-var = ${directory:var}/monitor
bin = $${directory:bin}
etc = $${directory:etc}
run = $${directory:monitor}/run
#run = $${directory:scripts}
promises = $${directory:monitor-promise}
reports = $${directory:monitor-report}
pids = $${directory:run}/monitor
cgi-bin = $${directory:monitor}/cgi-bin
webdav = $${directory:monitor}/webdav
public = $${directory:monitor}/public
private = $${directory:monitor}/private
services = $${directory:services}
services-conf = $${directory:etc}/monitor.conf.d
log = $${directory:log}/monitor
monitor-var = $${directory:var}/monitor
[ca-directory]
recipe = slapos.cookbook:mkdirectory
root = ${directory:srv}/ssl
requests = ${:root}/requests
private = ${:root}/private
certs = ${:root}/certs
newcerts = ${:root}/newcerts
crl = ${:root}/crl
root = $${directory:srv}/ssl
requests = $${:root}/requests
private = $${:root}/private
certs = $${:root}/certs
newcerts = $${:root}/newcerts
crl = $${:root}/crl
[certificate-authority]
recipe = slapos.cookbook:certificate_authority
openssl-binary = {{ openssl_executable_location }}
ca-dir = ${ca-directory:root}
requests-directory = ${ca-directory:requests}
wrapper = ${monitor-directory:services}/certificate_authority
ca-private = ${ca-directory:private}
ca-certs = ${ca-directory:certs}
ca-newcerts = ${ca-directory:newcerts}
ca-crl = ${ca-directory:crl}
openssl-binary = ${openssl:location}/bin/openssl
ca-dir = $${ca-directory:root}
requests-directory = $${ca-directory:requests}
wrapper = $${monitor-directory:services}/certificate_authority
ca-private = $${ca-directory:private}
ca-certs = $${ca-directory:certs}
ca-newcerts = $${ca-directory:newcerts}
ca-crl = $${ca-directory:crl}
[ca-monitor-httpd]
<= certificate-authority
recipe = slapos.cookbook:certificate_authority.request
key-file = ${monitor-httpd-conf-parameter:key-file}
cert-file = ${monitor-httpd-conf-parameter:cert-file}
executable = ${monitor-httpd-wrapper:wrapper-path}
wrapper = ${directory:services}/monitor-httpd
key-file = $${monitor-httpd-conf-parameter:key-file}
cert-file = $${monitor-httpd-conf-parameter:cert-file}
executable = $${monitor-httpd-wrapper:wrapper-path}
wrapper = $${directory:services}/monitor-httpd
[monitor-conf-parameters]
title = ${monitor-instance-parameter:monitor-title}
root-title = ${monitor-instance-parameter:root-instance-title}
public-folder = ${monitor-directory:public}
private-folder = ${monitor-directory:private}
webdav-folder = ${monitor-directory:webdav}
report-folder = ${monitor-directory:reports}
base-url = ${monitor-instance-parameter:monitor-base-url}
monitor-hal-json = ${monitor-directory:public}/monitor.hal.json
service-pid-folder = ${monitor-directory:pids}
crond-folder = ${logrotate-directory:cron-entries}
logrotate-folder = ${logrotate-directory:logrotate-entries}
promise-runner = {{ monitor_runpromise }}
promise-folder = ${directory:promises}
monitor-promise-folder = ${monitor-directory:promises}
promises-timeout-file = ${monitor-promise-timeout-file:file}
pid-file = ${monitor-directory:pids}/monitor-bootstrap.pid
title = $${monitor-instance-parameter:monitor-title}
root-title = $${monitor-instance-parameter:root-instance-title}
public-folder = $${monitor-directory:public}
private-folder = $${monitor-directory:private}
webdav-folder = $${monitor-directory:webdav}
report-folder = $${monitor-directory:reports}
base-url = $${monitor-instance-parameter:monitor-base-url}
monitor-hal-json = $${monitor-directory:public}/monitor.hal.json
service-pid-folder = $${monitor-directory:pids}
crond-folder = $${logrotate-directory:cron-entries}
logrotate-folder = $${logrotate-directory:logrotate-entries}
promise-runner = ${buildout:directory}/bin/monitor.runpromise
promise-folder = $${directory:promises}
monitor-promise-folder = $${monitor-directory:promises}
promises-timeout-file = $${monitor-promise-timeout-file:file}
pid-file = $${monitor-directory:pids}/monitor-bootstrap.pid
public-path-list =
private-path-list =
${directory:log}
$${directory:log}
#
monitor-url-list =
${monitor-instance-parameter:monitor-url-list}
$${monitor-instance-parameter:monitor-url-list}
parameter-file-path = ${monitor-instance-parameter:configuration-file-path}
parameter-file-path = $${monitor-instance-parameter:configuration-file-path}
parameter-list =
raw monitor-user ${monitor-instance-parameter:username}
htpasswd monitor-password ${httpd-monitor-htpasswd:password-file} ${monitor-instance-parameter:username} ${httpd-monitor-htpasswd:htpasswd-path}
file promise-timeout ${monitor-promise-timeout-file:file}
file min-free-disk-MB ${promise-check-free-disk-space:config-file}
${monitor-instance-parameter:instance-configuration}
raw monitor-user $${monitor-instance-parameter:username}
htpasswd monitor-password $${httpd-monitor-htpasswd:password-file} $${monitor-instance-parameter:username} $${httpd-monitor-htpasswd:htpasswd-path}
file promise-timeout $${monitor-promise-timeout-file:file}
file min-free-disk-MB $${promise-check-free-disk-space:config-file}
$${monitor-instance-parameter:instance-configuration}
# htpasswd entry: htpasswd key password-file username htpasswd-file
collector-db = ${monitor-instance-parameter:collector-db}
collect-script = {{ monitor_collect }}
statistic-script = {{ monitor_statistic }}
python = {{ python_with_eggs }}
nice-cmd = ${xnice-bin:output}
collector-db = $${monitor-instance-parameter:collector-db}
collect-script = ${buildout:directory}/bin/monitor.collect
statistic-script = ${buildout:directory}/bin/monitor.statistic
python = ${buildout:directory}/bin/${extra-eggs:interpreter}
nice-cmd = $${xnice-bin:output}
promise-output-file = ${directory:monitor}/monitor-bootstrap-status
promise-output-file = $${directory:monitor}/monitor-bootstrap-status
[monitor-promise-timeout-file]
recipe = plone.recipe.command
file = ${directory:etc}/promise_timeout
file = $${directory:etc}/promise_timeout
command =
if [ ! -s "${:file}" ]; then
echo "20" > ${:file}
if [ ! -s "$${:file}" ]; then
echo "20" > $${:file}
fi
[monitor-base-url-dict]
......@@ -127,81 +127,81 @@ command =
[monitor-conf]
recipe = slapos.recipe.template:jinja2
template = {{ monitor_conf_template }}
rendered = ${directory:etc}/${:filename}
template = ${monitor-conf:location}/${monitor-conf:filename}
rendered = $${directory:etc}/$${:filename}
filename = monitor.conf
context = section parameter_dict monitor-conf-parameters
section monitor_base_urls monitor-base-url-dict
[instance-info-parameters]
name = ${monitor-instance-parameter:monitor-title}
root-name = ${monitor-instance-parameter:root-instance-title}
computer-id = ${slap-connection:computer-id}
ipv4 = ${slap-configuration:ipv4-random}
ipv6 = ${slap-configuration:ipv6-random}
software-release = ${slap-connection:software-release-url}
software-type = ${slap-configuration:slap-software-type}
partition-id = ${slap-connection:partition-id}
name = $${monitor-instance-parameter:monitor-title}
root-name = $${monitor-instance-parameter:root-instance-title}
computer-id = $${slap-connection:computer-id}
ipv4 = $${slap-configuration:ipv4-random}
ipv6 = $${slap-configuration:ipv6-random}
software-release = $${slap-connection:software-release-url}
software-type = $${slap-configuration:slap-software-type}
partition-id = $${slap-connection:partition-id}
[monitor-instance-info]
recipe = slapos.recipe.template:jinja2
template = {{ monitor_instance_info }}
rendered = ${directory:etc}/${:filename}
template = ${monitor-instance-info:location}/${monitor-instance-info:filename}
rendered = $${directory:etc}/$${:filename}
filename = instance-info.conf
context =
section instance_dict instance-info-parameters
[python-symlink]
recipe = plone.recipe.command
target = ${directory:bin}
command = ln -sf {{ python_with_eggs }} ${:target}/python
update-command = ${:command}
target = $${directory:bin}
command = ln -sf ${buildout:directory}/bin/${extra-eggs:interpreter} $${:target}/python
update-command = $${:command}
[start-monitor]
recipe = slapos.cookbook:wrapper
command-line = {{ python_executable }} {{ monitor_bin }} --config_file ${monitor-conf:rendered}
command-line = ${buildout:directory}/bin/${extra-eggs:interpreter} ${buildout:directory}/bin/monitor.bootstrap --config_file $${monitor-conf:rendered}
name = bootstrap-monitor
wrapper-path = ${directory:scripts}/${:name}
wrapper-path = $${directory:scripts}/$${:name}
environment =
PATH=${python-symlink:target}:/usr/local/bin:/usr/bin:/bin
PATH=$${python-symlink:target}:/usr/local/bin:/usr/bin:/bin
[monitor-htpasswd]
recipe = slapos.cookbook:generate.password
storage-path = ${directory:etc}/.monitor_pwd
storage-path = $${directory:etc}/.monitor_pwd
bytes = 8
[httpd-monitor-htpasswd]
recipe = plone.recipe.command
stop-on-error = true
password-file = ${directory:etc}/.monitor_pwd
htpasswd-path = ${monitor-directory:etc}/monitor-htpasswd
password-file = $${directory:etc}/.monitor_pwd
htpasswd-path = $${monitor-directory:etc}/monitor-htpasswd
# Keep multiple lines as password can end with newline char.
command =
if [ ! -s "${:htpasswd-path}" ]; then
{{ apache_location }}/bin/htpasswd -cb ${:htpasswd-path} ${:user} ${:password}
if [ ! -s "$${httpd-monitor-htpasswd:htpasswd-path}" ]; then
${apache:location}/bin/htpasswd -cb $${:htpasswd-path} $${:user} $${:password}
fi
if [ ! -s "${:password-file}" ]; then echo "${monitor-instance-parameter:password}" > ${:password-file}; fi
update-command = ${:command}
user = ${monitor-instance-parameter:username}
password = ${monitor-instance-parameter:password}
if [ ! -s "$${:password-file}" ]; then echo "$${monitor-instance-parameter:password}" > $${:password-file}; fi
update-command = $${:command}
user = $${monitor-instance-parameter:username}
password = $${monitor-instance-parameter:password}
[monitor-httpd-conf-parameter]
listening-ip = ${monitor-instance-parameter:monitor-httpd-ipv6}
port = ${monitor-instance-parameter:monitor-httpd-port}
pid-file = ${directory:run}/monitor-httpd.pid
access-log = ${monitor-directory:log}/monitor-httpd-access.log
error-log = ${monitor-directory:log}/monitor-httpd-error.log
cert-file = ${ca-directory:certs}/httpd.crt
key-file = ${ca-directory:certs}/httpd.key
htpasswd-file = ${httpd-monitor-htpasswd:htpasswd-path}
url = https://[${monitor-instance-parameter:monitor-httpd-ipv6}]:${:port}
httpd-cors-config-file = ${monitor-httpd-cors:rendered}
listening-ip = $${monitor-instance-parameter:monitor-httpd-ipv6}
port = $${monitor-instance-parameter:monitor-httpd-port}
pid-file = $${directory:run}/monitor-httpd.pid
access-log = $${monitor-directory:log}/monitor-httpd-access.log
error-log = $${monitor-directory:log}/monitor-httpd-error.log
cert-file = $${ca-directory:certs}/httpd.crt
key-file = $${ca-directory:certs}/httpd.key
htpasswd-file = $${httpd-monitor-htpasswd:htpasswd-path}
url = https://[$${monitor-instance-parameter:monitor-httpd-ipv6}]:$${:port}
httpd-cors-config-file = $${monitor-httpd-cors:rendered}
httpd-include-file =
[monitor-httpd-conf]
recipe = slapos.recipe.template:jinja2
template = {{ monitor_httpd_template }}
rendered = ${monitor-directory:etc}/monitor-httpd.conf
template = ${monitor-httpd-conf:location}/${monitor-httpd-conf:filename}
rendered = $${monitor-directory:etc}/monitor-httpd.conf
mode = 0744
context =
section directory monitor-directory
......@@ -209,147 +209,147 @@ context =
[monitor-httpd-cors]
recipe = slapos.recipe.template:jinja2
template = {{ monitor_https_cors }}
rendered = ${directory:etc}/httpd-cors.cfg
template = ${monitor-httpd-cors:location}/${monitor-httpd-cors:filename}
rendered = $${directory:etc}/httpd-cors.cfg
mode = 0600
context =
key domain monitor-instance-parameter:cors-domains
[monitor-httpd-wrapper]
recipe = slapos.cookbook:wrapper
command-line = {{ apache_location }}/bin/httpd -f ${monitor-httpd-conf:rendered} -DFOREGROUND
wrapper-path = ${directory:bin}/monitor-httpd
command-line = ${apache:location}/bin/httpd -f $${monitor-httpd-conf:rendered} -DFOREGROUND
wrapper-path = $${directory:bin}/monitor-httpd
wait-for-files =
${ca-directory:certs}/httpd.key
${ca-directory:certs}/httpd.crt
${monitor-httpd-graceful-wrapper:rendered}
$${ca-directory:certs}/httpd.key
$${ca-directory:certs}/httpd.crt
$${monitor-httpd-graceful-wrapper:rendered}
[monitor-httpd-graceful-wrapper]
recipe = slapos.recipe.template:jinja2
template = {{ template_wrapper }}
rendered = ${directory:scripts}/monitor-httpd-graceful
template = ${monitor-template-wrapper:location}/${monitor-template-wrapper:filename}
rendered = $${directory:scripts}/monitor-httpd-graceful
mode = 0700
context =
key content :command
raw dash_binary {{ dash_executable_location }}
command = kill -USR1 $(cat ${monitor-httpd-conf-parameter:pid-file})
raw dash_binary ${dash:location}/bin/dash
command = kill -USR1 $(cat $${monitor-httpd-conf-parameter:pid-file})
[xnice-bin]
recipe = collective.recipe.template
input = inline:#!/bin/sh
# run something at lowest possible priority
exec nice -19 chrt --idle 0 ionice -c3 "$@"
output = ${directory:bin}/xnice
output = $${directory:bin}/xnice
mode = 700
[promise-monitor-httpd-is-process-older-than-dependency-set]
recipe = slapos.cookbook:wrapper
command-line = {{ bin_directory }}/is-process-older-than-dependency-set ${monitor-httpd-conf-parameter:pid-file}
wrapper-path = ${directory:promises}/promise-monitor-httpd-is-process-older-than-dependency-set
command-line = ${buildout:directory}/bin/is-process-older-than-dependency-set $${monitor-httpd-conf-parameter:pid-file}
wrapper-path = $${directory:promises}/promise-monitor-httpd-is-process-older-than-dependency-set
parameters-extra = true
[monitor-globalstate-wrapper]
recipe = slapos.cookbook:wrapper
command-line = ${xnice-bin:output} {{ monitor_genstatus }} '${monitor-conf:rendered}' '${monitor-instance-info:rendered}'
wrapper-path = ${directory:bin}/monitor-globalstate
command-line = $${xnice-bin:output} ${buildout:directory}/bin/monitor.genstatus '$${monitor-conf:rendered}' '$${monitor-instance-info:rendered}'
wrapper-path = $${directory:bin}/monitor-globalstate
[monitor-configurator-wrapper]
recipe = slapos.cookbook:wrapper
# XXX - hard coded path
command-line = {{ monitor_configwrite }} --config_folder '${monitor-conf-parameters:private-folder}/config/.jio_documents' --output_cfg_file '${monitor-instance-parameter:configuration-file-path}' --htpasswd_bin '{{ apache_location }}/bin/htpasswd' --monitor_https_cors {{ monitor_https_cors }}
wrapper-path = ${directory:bin}/monitor-configurator
command-line = ${buildout:directory}/bin/monitor.configwrite} --config_folder '$${monitor-conf-parameters:private-folder}/config/.jio_documents' --output_cfg_file '$${monitor-instance-parameter:configuration-file-path}' --htpasswd_bin '${apache:location}/bin/htpasswd' --monitor_https_cors ${monitor-template-wrapper:location}/${monitor-template-wrapper:filename}
wrapper-path = $${directory:bin}/monitor-configurator
[monitor-globalstate-cron-entry]
recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries}
cron-entries = $${cron:cron-entries}
name = monitor-globalstate
frequency = * * * * *
command = ${monitor-globalstate-wrapper:wrapper-path}
command = $${monitor-globalstate-wrapper:wrapper-path}
[monitor-configurator-cron-entry]
recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries}
cron-entries = $${cron:cron-entries}
name = monitor-configurator
frequency = * * * * *
command = ${monitor-configurator-wrapper:wrapper-path}
command = $${monitor-configurator-wrapper:wrapper-path}
[monitor-httpd-promise]
recipe = slapos.cookbook:check_url_available
path = ${directory:promises}/${:filename}
path = $${directory:promises}/$${:filename}
filename = monitor-httpd-listening-on-tcp
url = ${monitor-httpd-conf-parameter:url}
url = $${monitor-httpd-conf-parameter:url}
check-secure = 1
dash_path = {{ dash_executable_location }}
curl_path = {{ curl_executable_location }}
dash_path = ${dash:location}/bin/dash
curl_path = ${curl:location}/bin/curl
[monitor-publish-parameters]
# XXX depends on monitor-base section
monitor-base-url = ${monitor-base:base-url}
monitor-url = ${:monitor-base-url}/public/feeds
monitor-user = ${monitor-instance-parameter:username}
monitor-password = ${monitor-instance-parameter:password}
monitor-base-url = $${monitor-base:base-url}
monitor-url = $${:monitor-base-url}/public/feeds
monitor-user = $${monitor-instance-parameter:username}
monitor-password = $${monitor-instance-parameter:password}
[install-monitor-apache]
recipe = plone.recipe.command
command = true
update-command =
monitor-base-url = ${monitor-frontend-promise:url}
monitor-base-url-ipv6 = ${monitor-httpd-conf-parameter:url}
# XXX - Set monitor-base-url = $${install-monitor-apache:monitor-base-url} => https://[ipv6]:port
#monitor-base-url = $${monitor-frontend-promise:url}
monitor-base-url = $${monitor-httpd-conf-parameter:url}
depends =
${certificate-authority:wrapper}
${ca-monitor-httpd:wrapper}
${monitor-httpd-promise:filename}
${promise-monitor-httpd-is-process-older-than-dependency-set:wrapper-path}
$${certificate-authority:wrapper}
$${ca-monitor-httpd:wrapper}
$${monitor-httpd-promise:filename}
$${promise-monitor-httpd-is-process-older-than-dependency-set:wrapper-path}
[monitor-instance-parameter]
monitor-title = ${slap-configuration:instance-title}
monitor-httpd-ipv6 = ${slap-configuration:ipv6-random}
monitor-title = $${slap-configuration:instance-title}
monitor-httpd-ipv6 = $${slap-configuration:ipv6-random}
monitor-httpd-port = 8196
# XXX - Set monitor-base-url = ${install-monitor-apache:monitor-base-url} => https://[ipv6]:port
monitor-base-url = ${install-monitor-apache:monitor-base-url}
#monitor-base-url = ${install-monitor-apache:monitor-base-url-ipv6}
root-instance-title = ${slap-configuration:root-instance-title}
monitor-base-url = $${install-monitor-apache:monitor-base-url}
root-instance-title = $${slap-configuration:root-instance-title}
monitor-url-list =
cors-domains = monitor.app.officejs.com
cors-domains = softinst65443.host.vifib.net
#monitor.app.officejs.com
# XXX Hard coded parameter
collector-db = /srv/slapgrid/var/data-log/collector.db
# Credentials
password = ${monitor-htpasswd:passwd}
password = $${monitor-htpasswd:passwd}
username = admin
# XXX: type key value
# ex raw monitor-password resqdsdsd34
instance-configuration =
configuration-file-path = ${monitor-directory:etc}/monitor_knowledge0.cfg
configuration-file-path = $${monitor-directory:etc}/monitor_knowledge0.cfg
interface-url = https://monitor.app.officejs.com
[monitor-frontend]
<= slap-connection
recipe = slapos.cookbook:requestoptional
name = Monitor Frontend ${monitor-instance-parameter:monitor-title}
name = Monitor Frontend $${monitor-instance-parameter:monitor-title}
# XXX We have hardcoded SR URL here.
software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
slave = true
config-url = ${monitor-httpd-conf-parameter:url}
config-url = $${monitor-httpd-conf-parameter:url}
config-https-only = true
#software-type = custom-personal
return = domain secure_access
[monitor-frontend-promise]
recipe = slapos.cookbook:check_url_available
path = ${directory:promises}/monitor-http-frontend
url = ${monitor-frontend:connection-secure_access}
dash_path = {{ dash_executable_location }}
curl_path = {{ curl_executable_location }}
path = $${directory:promises}/monitor-http-frontend
url = $${monitor-frontend:connection-secure_access}
dash_path = ${dash:location}/bin/dash
curl_path = ${curl:location}/bin/curl
check-secure = 1
[monitor-bootstrap-promise]
recipe = collective.recipe.template
file = ${monitor-conf-parameters:promise-output-file}
error-log-file = ${buildout:directory}/.${slap-connection:partition-id}_${start-monitor:name}.log
input = inline:#!{{ dash_executable_location }}
pidfile=${monitor-conf-parameters:pid-file}
file = $${monitor-conf-parameters:promise-output-file}
error-log-file = $${buildout:directory}/.$${slap-connection:partition-id}_$${start-monitor:name}.log
input = inline:#!${dash:location}/bin/dash
pidfile=$${monitor-conf-parameters:pid-file}
if [ -s $pidfile ]; then
COUNTER=0
# Wait until max 20 seconds, the limit promise timeout
......@@ -362,9 +362,9 @@ input = inline:#!{{ dash_executable_location }}
fi
done
fi
if [ ! -f "${:file}" ]; then
if [ ! -f "$${:file}" ]; then
echo "Monitor bootstrap exited with error."
log_file="${:error-log-file}"
log_file="$${:error-log-file}"
if [ -s "$log_file" ]; then
echo " ---- Latest monitor-boostrap.log ----"
echo ""
......@@ -374,53 +374,53 @@ input = inline:#!{{ dash_executable_location }}
else
echo "Bootstrap OK";
fi
output = ${directory:promises}/monitor-bootstrap-status
output = $${directory:promises}/monitor-bootstrap-status
mode = 700
[promise-check-slapgrid]
recipe = collective.recipe.template
error-log-file = ${buildout:directory}/.slapgrid-${slap-connection:partition-id}-error.log
error-log-file = $${buildout:directory}/.slapgrid-$${slap-connection:partition-id}-error.log
input = inline:#!/bin/sh
if [ -f "${:error-log-file}" ]; then
>&2 cat ${:error-log-file}
if [ -f "$${:error-log-file}" ]; then
>&2 cat $${:error-log-file}
exit 1
fi
output = ${monitor-directory:promises}/buildout-${slap-connection:partition-id}-status
output = $${monitor-directory:promises}/buildout-$${slap-connection:partition-id}-status
mode = 700
[promise-check-free-disk-space]
recipe = slapos.recipe.template:jinja2
template = {{ template_check_disk_space }}
rendered = ${monitor-directory:promises}/check-free-disk-space
template = ${monitor-check-free-disk-space:location}/${monitor-check-free-disk-space:filename}
rendered = $${monitor-directory:promises}/check-free-disk-space
mode = 0700
context =
key config_file :config-file
raw home_path ${buildout:directory}
raw python_bin {{ python_with_eggs }}
config-file = ${directory:etc}/min-free-disk-size
raw home_path $${buildout:directory}
raw python_bin ${buildout:directory}/bin/${extra-eggs:interpreter}
config-file = $${directory:etc}/min-free-disk-size
[monitor-base]
# create dependencies between required monitor parts
recipe = plone.recipe.command
command = true
update-command =
base-url = ${monitor-conf-parameters:base-url}
base-url = $${monitor-conf-parameters:base-url}
depends =
${monitor-globalstate-cron-entry:name}
${monitor-configurator-cron-entry:name}
${cron-entry-logrotate:name}
${logrotate-entry-cron:name}
${monitor-conf:rendered}
${start-monitor:wrapper-path}
${monitor-bootstrap-promise:file}
${promise-check-slapgrid:output}
$${monitor-globalstate-cron-entry:name}
$${monitor-configurator-cron-entry:name}
$${cron-entry-logrotate:name}
$${logrotate-entry-cron:name}
$${monitor-conf:rendered}
$${start-monitor:wrapper-path}
$${monitor-bootstrap-promise:file}
$${promise-check-slapgrid:output}
[monitor-publish]
monitor-base-url = ${monitor-publish-parameters:monitor-base-url}
monitor-setup-url = ${monitor-instance-parameter:interface-url}/#page=settings_configurator&url=${monitor-publish-parameters:monitor-url}&username=${monitor-publish-parameters:monitor-user}&password=${monitor-publish-parameters:monitor-password}
monitor-base-url = $${monitor-publish-parameters:monitor-base-url}
monitor-setup-url = $${monitor-instance-parameter:interface-url}/#page=settings_configurator&url=$${monitor-publish-parameters:monitor-url}&username=$${monitor-publish-parameters:monitor-user}&password=$${monitor-publish-parameters:monitor-password}
[buildout]
extends =
{{ template_logrotate_base }}
${template-logrotate-base:rendered}
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