{% extends "base.html" %} {% from "_macros.html" import crumbs, page_header, status_badge %} {% block title %}{{ row.title }} — Steward{% endblock %} {% block breadcrumb %}{{ crumbs([("Ansible", "/ansible/"), (row.title, "")]) }}{% endblock %} {% block content %} {% call page_header(row.title, "Run " ~ run.id[:8] ~ " from " ~ run.source_name) %} {% if run.status.value in ("running", "queued") and session.user_role in ("operator", "admin") %}
{{ csrf_field() }}
{% endif %} Download log {% endcall %}
Status
{{ status_badge(run.status) }}{% if row.check %} dry run{% endif %}
Started
{{ run.started_at|ago }}
Duration
{{ row.duration_s|duration }}{% if not run.finished_at %} so far{% endif %}
Playbook
{{ run.playbook_path }}
Scope
{{ row.scope_label }}
Source
{{ run.source_name }}
Triggered by
{{ triggered_label }}
{% if run.params %} {% if run.params.limit %}
Limit
{{ run.params.limit }}
{% endif %} {% if run.params.tags %}
Tags
{{ run.params.tags }}
{% endif %} {% if run.params.extra_vars %}
Extra vars
{{ run.params.extra_vars | join(", ") }}
{% endif %} {% endif %}
ID
{{ run.id }}
{% if run.results and run.results.hosts %}
Host summary
{% for host, c in run.results.hosts.items() %} {% endfor %}
Host okchanged unreachablefailed skipped
{{ host }} {{ c.ok }} {{ c.changed }} {{ c.unreachable }} {{ c.failed }} {{ c.skipped }}
{% if run.results.failures %}
Failures
{{ run.results.failures | join("\n") }}
{% endif %}
{% endif %}
Output
{% if run.status.value in ("running", "queued") %}
{{ run.output or "" }}
Streaming…
{% else %}
{{ run.output or "(no output)" }}
{% endif %}
{% endblock %}