fix: name the guest in VM/CT health alerts, refresh AI models, propose the recipe's volume choice

- A health problem of a VM or CT names the guest in its title and in the
  Quiet Hours summary; a recovery shows its category by name in the
  reader's language.
- AI model lists reviewed against each provider: Gemini adds 3.6/3.7/3.8
  Flash, Groq adds gpt-oss-120b, and Groq/OpenRouter models no longer
  served are removed.
- OCI installer proposes the volume choice the recipe declares, so a path
  meant for a host directory is proposed as one; Duplicati /source is
  proposed on a host directory.
This commit is contained in:
MacRimi
2026-10-26 18:47:09 +01:00
parent b6500c147e
commit 7b1736fe3e
21 changed files with 160 additions and 24 deletions
@@ -2125,9 +2125,22 @@ def render_template(event_type: str, data: Dict[str, Any],
or ''
)
_ent = str(_ent).strip()
# A VM or CT health issue records the guest as id, vmname and type.
if not _ent and str(variables.get('category', '')) == 'vms' and variables.get('id'):
_ent = f"{variables.get('type') or 'VM/CT'} {variables['id']}"
if variables.get('vmname'):
_ent += f" ({variables['vmname']})"
variables['entity'] = _ent
variables['entity_suffix'] = f' — {_ent}' if _ent else ''
# Health categories reach the templates by their key ("vms"); show the
# name the health summary uses for them, in the reader's language.
_category = str(variables.get('category', '')).strip()
if _category:
_category_label = runtime_message(f'healthDegraded.categories.{_category}', language)
if _category_label:
variables['category'] = _category_label
# `title_or_default` lets a template surface a caller-computed title
# when the caller already knows the entity context (e.g.
# flask_server's health collector), and fall back to a stock string