{% for problem in registry_problems %}

{{ problem }}

{% endfor %} {% if not campaigns %}

No campaign registered on this machine. vq campaign run registers its run directory here.

{% endif %} {% for c in campaigns %}

{{ c.campaign_id }} {{ c.status | replace("_", " ") }} run {{ c.run_dir_name }} · {{ c.campaign_sha256[:12] }} · registered {{ c.registered_at[:19] | replace("T", " ") }} UTC

{% if c.error %}

{{ c.error }}

{% else %} {% set g = c.graph %}
{% for e in g.edges %} {{ e.from }} → {{ e.to }} ({{ e.on }}) {% endfor %} {% for n in g.nodes %} {{ n.id }}: {{ n.status }}{% for r in n.reasons %}; {{ r }}{% endfor %}{% if n.next %}; next: {{ n.next }}{% endif %} {{ n.id | truncate(22, true) }} {{ n.kind }} · {{ n.host | truncate(16, true) }} {{ n.status }}{% if n.attempt %} · attempt {{ n.attempt.number }}{% endif %} {% endfor %}
{% for n in g.nodes %} {% endfor %}
nodestatusattempt / joboutputswhy / next
{{ n.id }} {{ n.kind }} {{ n.status }} {% if n.attempt %} {{ n.attempt.number }} {{ n.attempt.state }}{% if n.attempt.retry_of %} (retries {{ n.attempt.retry_of }}){% endif %} {% if n.attempt.href %}· {{ n.attempt.job_id }} on {{ n.attempt.host }}{% endif %} {% if n.attempt.runtime %}
ran {{ n.attempt.runtime }}{% endif %} {% else %}-{% endif %}
{% for o in n.outputs %}{{ o.name }}: {{ o.status }}{% if not loop.last %}
{% endif %}{% else %}-{% endfor %}
{% for r in n.reasons %}{{ r }}
{% endfor %} {% if n.next %}next: {{ n.next }}{% endif %}
{% if c.retain %}

Kept for unfinished consumers: {% for r in c.retain %}{{ r.node }} attempt {{ r.attempt }} (for {{ r.needed_by | join(", ") }}){% if not loop.last %}; {% endif %}{% endfor %}

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