{%- if slapparameter_dict.get('admin') != 0 %}
{%- set monitor_dict = slapparameter_dict['monitor'] %}
{%- set bang_on_problem = monitor_dict.pop('bang-on-problem', None) %}
{%- set periodicity = monitor_dict.pop('periodicity', None) %}

[buildout]
extends =
  {{ template_monitor }}
parts +=
  logrotate-admin
  monitor-neo-health

[neo-admin]
recipe = slapos.cookbook:neoppod.admin
binary = {{bin_directory}}/neoadmin
wrapper = ${directory:etc_run}/neoadmin
logfile = ${directory:log}/neoadmin.log
ip = ${publish:ip}
port = ${publish:port-admin}
ssl = {{ dumps(bool(slapparameter_dict['ssl'])) }}
cluster = {{ dumps(slapparameter_dict['cluster']) }}
masters = {{ dumps(slapparameter_dict['masters']) }}
extra-options =
{%- for k, v in monitor_dict.iteritems() %}
{%-   if k == 'backup' %}
{%-     set k = 'monitor-backup' %}
{%-   endif %}
{%-   if not isinstance(v, list) %}
{%-     set v = [v] %}
{%-   endif %}
{%-   for v in v %}
  --{{k}}={{v}}
{%-   endfor %}
{%- endfor %}

[directory]
plugin =  ${:etc}/plugin

[monitor-neo-health]
<= monitor-promise-base
module = check_neo_health
name = ${:_buildout_section_name_}.py
config-neoctl = ${neoctl:wrapper-path}
{%- if bang_on_problem != None %}
config-bang-on-problem = {{ dumps(bang_on_problem) }}
{%- endif %}
{%- if periodicity != None %}
config-periodicity = {{ dumps(periodicity) }}
{%- endif %}

[monitor-instance-parameter]
monitor-httpd-port = {{ slapparameter_dict.get('admin', 2050) + 1 }}
monitor-title = neo
password = {{ slapparameter_dict['monitor-passwd'] }}

[logrotate-admin]
< = logrotate-entry-base
name = neo-admin
log = ${neo-admin:logfile}
post = {{ bin_directory }}/slapos-kill -s RTMIN+1 -- ${neo-admin:binary} -l ${:log}

[neoctl]
recipe = slapos.cookbook:wrapper
command-line =
  {{bin_directory}}/neoctl -a ${neo-admin:ip}:${neo-admin:port}
{%- if slapparameter_dict['ssl'] %}
    --ca ${directory:etc}/ca.crt
    --cert ${directory:etc}/neo.crt
    --key ${directory:etc}/neo.key
{%- endif %}
wrapper-path = ${directory:bin}/neoctl
{%- endif %}
