{% extends "base.html" %} {% from "macros.html" import src_link, item_href %} {% block title %}Overview{% endblock %} {% block head %}{% if refresh %}{% endif %}{% endblock %} {% macro links(source, row) %}{% for l in row.links %}{% if l.href %}{{ l.text }}{% else %}{{ l.text }}{% endif %}{% endfor %}{% endmacro %} {% macro item_row(source, row) %} {{ row.item.title or row.item.id }}
{{ row.item.id }}
{% if row.mark %}{{ row.mark }} {% endif %}{{ row.what }} {% for d in row.details %}
{{ d|clip(300) }}
{% endfor %} {{ links(source, row) }} {{ row.item.updated_at|ago }} {% endmacro %} {% block main %}

Overview

As of {{ now.isoformat()|when }} UTC. {% if refresh %}Reloads every {{ refresh }} s · stop reloading{% else %}Not reloading · reload every minute{% endif %}

{% if not agents and not rows %}

No sources. Start with --source NAME=STATE_DB or --runs DIR.

{% endif %} {% for a in agents %}

{{ src_link(a.source) }}{% if a.kind %} {{ "nisse-dev" if a.kind == "dev" else "nisse-review" }}{% endif %}

{% if a.problem %}

Couldn't read its store: {{ a.problem }}

{% else %}
{% for r in a.running %}

running {{ r.run.kind }} · {{ r.run.role }} {% if r.run.work_item %} on {{ r.run.work_item }}{% else %} (agent level){% endif %} · {{ r.turns }} turn{{ "" if r.turns == 1 else "s" }} · since {{ r.run.started_at|when }} {% if r.last_call %} · latest turn {{ r.last_at|ago }}{% endif %}

{% endfor %} {% if not a.running %}

Idle{% if a.last_activity %} since {{ a.last_activity|when }} ({{ a.last_activity|ago }}){% endif %}.

{% endif %} {% for r in a.interrupted %}

maybe interrupted {{ r.run.kind }} · {{ r.run.role }} {% if r.run.work_item %} on {{ r.run.work_item }}{% endif %} · never ended; last heard {{ r.last_at|when }} ({{ r.last_at|ago }})

{% endfor %} {% if a.record_note %}

{{ a.record_note }}

{% endif %} {% if a.active %}

Active item: {{ a.active.item.title or a.active.item.id }} · {{ a.active.what }}

{% endif %}
{% if a.blocks %}

Blocked build VMs

{% for b in a.blocks %} {% endfor %}
VMWhyFound bySince
{{ b.host }}{{ b.cause }} {{ b.reason|clip(300) }} {% if b.work_item %}{{ b.work_item }}{% endif %} {{ b.since|ago }}
{% endif %} {% for g in a.groups if g.rows %}

{{ g.title }} ({{ g.rows|length }})

{% for row in g.rows %}{{ item_row(a.source, row) }}{% endfor %}
ItemWhere, and whyLinksChanged
{% endfor %} {% if not a.groups|selectattr("rows")|list %}

No open work items.

{% endif %} {% if a.closed %}
Recently closed ({{ a.closed|length }}) {% for row in a.closed %} {% endfor %}
ItemOutcomeLinksClosed
{{ row.item.title or row.item.id }} {{ row.what }}{{ links(a.source, row) }} {{ (row.item.closed_at or row.item.updated_at)|ago }}
{% endif %}

All its work items · agent-level log

{% endif %}
{% endfor %} {% if rows %}

Recorded runs

{% for r in rows %} {% endfor %}
RunWork itemsCall recordState store
{{ src_link(r.source) }} {% if r.count is not none %}{{ r.count }}{% else %}{{ r.note }}{% endif %} {{ "yes" if r.record else "none" }} {{ r.source.state_db }}
{% endif %} {% endblock %}