release 1.13.8: monpages TOP meta failures are WARN only

Missing sticky top meta (generated / version-link / taler-mon-page) and
empty/truncated race bodies no longer ERROR the suite (self-red mid-run).
Set MONPAGES_TOP_STRICT=1 to keep hard ERROR.
This commit is contained in:
Hernâni Marques 2026-07-19 03:45:43 +02:00
parent 2a20def806
commit c9588ec562
No known key found for this signature in database
GPG key ID: CB5738652768F7E9
3 changed files with 31 additions and 5 deletions

View file

@ -1 +1 @@
1.13.7
1.13.8

View file

@ -17,6 +17,7 @@ Git tags: `vMAJOR.FEATURE.FIX` (e.g. `v1.8.0`). File `VERSION` omits the `v` pre
| Tag | Date (UTC) | Notes |
|-----|------------|--------|
| **v1.13.8** | 2026-07-19 | **Bugfix:** monpages **TOP** meta/marker failures (missing generated/version-link/taler-mon-page, empty race body) are **WARN only** — no longer self-red the run; optional `MONPAGES_TOP_STRICT=1` restores ERROR. |
| **v1.13.7** | 2026-07-19 | **Bugfix:** move optional/meta scripts under `meta/` (deprecated mail/mm units, firecuda outside-runner, legacy multi-host site-gen); production path stays host-agent + `site-gen/console_to_html.py`. |
| **v1.13.6** | 2026-07-19 | **Bugfix:** machine paths and SSH hosts only via env (`~/.config/taler-monitoring/env` / `taler-monitoring-env`); suite loads env before defaults; no `/home/hernani` or bogus host hardcodes. |
| **v1.13.5** | 2026-07-19 | **Bugfix:** progress bar — env-aware phase estimates (CHECK_BANK/LANDING, mon hosts); re-fit total after each phase (done+remaining); drop fake +12 for host-agent monpages post-check (fixes stage 42/139→46/46 snap). |

View file

@ -356,9 +356,15 @@ validate_mon_content() {
pct=$(_progress_max_pct "$f")
if [ "$top_ok" != "1" ]; then
# TOP missing is WARN-only (v1.13.8+): mid-run races and incomplete
# /monitoring stubs used to self-red the next HTML. Hard ERROR still for
# missing page / code 21 / non-suite body. Override: MONPAGES_TOP_STRICT=1.
_MON_CONTENT_MSG="TOP: $_MON_CONTENT_MSG"
if [ "${MONPAGES_TOP_STRICT:-0}" = "1" ]; then
return 1
fi
return 2
fi
if [ "$body_ok" != "1" ]; then
_MON_CONTENT_MSG="BODY: $_MON_CONTENT_MSG"
return 1
@ -495,9 +501,17 @@ check_one() {
return 0
;;
2)
# mid-run: bottom may be incomplete — not ERROR
# soft: TOP incomplete / mid-run bottom — WARN, never hard fail
case "${_MON_CONTENT_MSG}" in
TOP:*)
warn "public mon page content" \
"$url -> ${_MON_CONTENT_MSG} (WARN only; set MONPAGES_TOP_STRICT=1 to ERROR)"
;;
*)
warn "public mon page mid-run" "$url -> ${_MON_CONTENT_MSG}"
ok "public mon page" "$url -> HTTP 200 suite HTML (mid-run bottom relaxed)"
;;
esac
rm -f "$body"
return 0
;;
@ -508,6 +522,17 @@ check_one() {
sleep "$sleep_s" 2>/dev/null || sleep 1
continue
fi
# TOP failures should already be soft (return 2); belt-and-braces:
case "${_MON_CONTENT_MSG}" in
TOP:*)
if [ "${MONPAGES_TOP_STRICT:-0}" != "1" ]; then
warn "public mon page content" \
"$url -> ${_MON_CONTENT_MSG} (WARN only; set MONPAGES_TOP_STRICT=1 to ERROR)"
rm -f "$body"
return 0
fi
;;
esac
# Pre-publish inventory in host-agent PHASES: WARN only (post-check is hard)
if [ "$pre_pub" = "1" ] || [ "$soft" = "1" ]; then
warn "public mon page content" \