{% set part_list = [] -%}
{% set slave_information_dict = {} -%}

# regroup slave information from all frontends
{%- for frontend, slave_list_raw in slave_information.iteritems() -%}
{%   if slave_list_raw %}
{%     set slave_list = json_module.loads(slave_list_raw) -%}
{%   else %}
{%    set slave_list = [] %}
{%   endif %}
{%   for slave_dict in slave_list -%}
{%     set slave_reference = slave_dict.pop('slave-reference') %}
{%     set log_access_url = slave_dict.pop('log-access', '') %}
{%     set current_slave_dict = slave_information_dict.get(slave_reference, {}) %}
{%     do current_slave_dict.update(slave_dict) -%}
{%     set log_access_list = current_slave_dict.get('log-access-urls', []) %}
{%     do log_access_list.append( frontend + ': ' + log_access_url) %}
{%     do current_slave_dict.__setitem__(
            'log-access-urls',
            log_access_list
            ) %}
{%     do current_slave_dict.__setitem__(
            'replication_number',
            current_slave_dict.get('replication_number', 0) + 1
            ) -%}
{%     do slave_information_dict.__setitem__(slave_reference, current_slave_dict) -%}
{%   endfor -%}
{% endfor %}

# Publish information for each slave
{% for slave_reference, slave_information in slave_information_dict.iteritems() %}
{%   set publish_section_title = 'publish-%s' % slave_reference -%}
{%   do part_list.append(publish_section_title) -%}
[{{ publish_section_title }}]
recipe = slapos.cookbook:publish
-slave-reference = {{ slave_reference }}
log-access-url = {{ json_module.dumps(slave_information.pop('log-access-urls', 1000)) }}
{%   for key, value in slave_information.iteritems() -%}
{{ key }} = {{ value }}
{%   endfor -%}
{% endfor %}

[buildout]
parts =
{% for part in part_list %}
{{ '  %s' % part }}
{% endfor %}

eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true