{% extends "ui/_layout.html" %} {% from "ui/_table_macros.html" import sort_header, pagination_inline, copy_chip with context %} {% block title %}Images - bty-web{% endblock %} {% block subnav %} {# Left: in-page jump links. Right: the three add-paths (Add image / Upload catalog / Fetch catalog), moved here from the card header so the page-level actions live in the page chrome and the card-body stays focused on the catalog table. #} {% endblock %} {% block intro %} {% from "ui/_intro_box.html" import render as intro_box %} {% call intro_box() %} The image catalog. Each entry references a URL (https or oras) the live env flashes from. bty-web doesn't host image bytes, and since v0.66.0 doesn't hold the catalog either -- withcache is the single source of truth for both bytes and manifest, and the Add image form pushes entries into withcache's catalog API. The Warm column and per-row Pre-warm action drive nbdmux's ramboot warm pipeline; a machine bound to a ref in ramboot mode boots as soon as its row shows ready. {% endcall %} {% endblock %} {% block content %}
| Warm | Status | Action | |||||
|---|---|---|---|---|---|---|---|
{{ u.names[0] }}
|
{% if u.sha256 %} {{ copy_chip(u.sha256) }} {% else %} unset {% endif %} | {{ u.format or "?" }} | {% if u.arch %} {{ u.arch }} {% else %} — {% endif %} | {% if entry_src %} {% if entry_src.startswith('oras://') %} {% else %} {% endif %} {{ copy_chip(entry_src, shown=entry_src) }} {% endif %} | {# Warm column: ramboot state for this ref from nbdmux's /exports (populated at render time). Blank / hidden when nbdmux isn't configured. #} {% set _ws = (warm_status_by_ref or {}).get(u.ref) %}{% if not nbdmux_configured %} — {% elif _ws == 'ready' %} ready {% elif _ws == 'failed' %} failed {% elif _ws %} {{ _ws }} {% else %} not warmed {% endif %} | — | {# Pre-warm / Unwarm: form-post so a click kicks off nbdmux warming for this ref (or removes an existing export) and reloads with the new state picked up by the render-time /exports poll. Hidden when nbdmux isn't configured or no src to warm from. #} {% if nbdmux_configured and entry_src %} {% if _ws in ('queued', 'fetching', 'decompressing', 'ready') %} {% else %} {% endif %} {% endif %} {% if entry_src %} {% endif %} |
| No catalog entries yet. Use Add image, Upload catalog, or Fetch latest catalog in the header above. | |||||||