{% extends "header.html" %} {% block content %}
{% for g in data.generations|sort(reverse=True) %}

{{ g }}

{{ data.generations[g]['str'] }}

{% for t in data.tiers|sort %}
{% if g in data.builders and t in data.builders[g]['tiers'] %} {% set d = data.builders[g]['tiers'][t]['DONE'] %} {% set b = data.builders[g]['tiers'][t]['BUILD'] + data.builders[g]['tiers'][t]['none'] + data.builders[g]['tiers'][t]['IDLE'] + data.builders[g]['tiers'][t]['FAILURE'] %} {% set s = b + d if b + d > 0 else 1 %}

{{ t }}: {{ d }} of {{ s }}

{% endif %} {% if t in data.generations[g]['tiers'] %} {% for shard in data.generations[g]['tiers'][t] %} {% set state = data.generations[g]['tiers'][t][shard] %}

{{ shard }} {% for s, c in [('building', 'primary'), ('dead', 'danger'), ('idle', 'default'), ('prepared', 'success'), ('failed', 'warning')] %} {% for h in state[s] %} {{ h['host'] }}:{{ h['port'] }} {% endfor %} {% endfor %}

{% endfor %} {% endif %}
{% endfor %}
{% endfor %}
{% endblock %}