{% extends "base.html" %} {% from "_macros.html" import crumbs %} {% block title %}Ansible Schedules — Steward{% endblock %} {% block breadcrumb %}{{ crumbs([("Ansible", "/ansible/"), ("Schedules", "")]) }}{% endblock %} {% macro fmt_interval(secs) %} {%- set m = {300: "every 5 min", 3600: "hourly", 21600: "every 6h", 43200: "every 12h", 86400: "daily", 604800: "weekly"} -%} {{ m.get(secs, secs ~ "s") }} {% endmacro %} {% block content %}

Ansible Schedules

Inventory Browse
{# ── Existing schedules ───────────────────────────────────────────────────── #} {% if not rows %}
No schedules yet. Create one below to run a playbook on a recurring interval.
{% else %}
{% for row in rows %} {% set s = row.s %} {% endfor %}
NamePlaybookTargetInterval Last runNext run
{{ s.name }} {{ s.source_name }} / {{ s.playbook_path }} {{ s.inventory_scope }} {{ fmt_interval(s.interval_seconds) }} {% if s.last_error %} launch error {% elif row.last_run %} {% set sc = {"queued":"var(--text-dim)","running":"var(--yellow)","success":"var(--green)","failed":"var(--red)","interrupted":"var(--orange)","cancelled":"var(--orange)"}.get(row.last_run.status.value, "var(--text-muted)") %} {{ row.last_run.status.value }} · {{ s.last_run_at.strftime("%m-%d %H:%M") }} {% else %} never {% endif %} {% if not s.enabled %}paused {% elif row.next_run %}{{ row.next_run.strftime("%m-%d %H:%M") }} {% else %}due now{% endif %}
Edit
{% endif %} {# ── Create / edit form ───────────────────────────────────────────────────── #} {% set p = (editing.params or {}) if editing else {} %} {% set saved_vars = p.get('extra_vars_map') or {} %} {% set declared_names = (edit_variables or []) | map(attribute='name') | list %}

{{ "Edit schedule" if editing else "New schedule" }}

{# Declared playbook variables (vars:/vars_prompt:) — loaded via HTMX on playbook change; pre-rendered here in edit mode so saved values show. #}
{% if editing %} {% set variables = edit_variables %} {% set description = edit_description %} {% set category = edit_category %} {% set confirm = edit_confirm %} {% set values = saved_vars %} {% set schedule = true %} {% include "ansible/_playbook_vars.html" %} {% endif %}
Extra vars
{% if editing %}Cancel{% endif %}
{% endblock %}