Expand lab seed tiers, OpenAPI PARAMS, and console DATA/Params UX.

This commit is contained in:
2026-07-18 08:46:39 +03:00
parent f8d3cbdd59
commit 63cc409424
71 changed files with 38380 additions and 796 deletions
+16 -9
View File
@@ -17,6 +17,8 @@ def _section_rest(summary: dict[str, Any]) -> str:
majors = rest.get("majors") or []
by_verb = rest.get("by_verb") or {}
failures = rest.get("failures") or []
coverage = rest.get("coverage_line") or f"{(rest.get('probed') or 0) - (rest.get('critical') or 0)}/{rest.get('declared') or rest.get('total') or 0}"
critical = rest.get("critical", rest.get("failed", 0))
major_rows = []
for m in majors:
@@ -26,8 +28,10 @@ def _section_rest(summary: dict[str, Any]) -> str:
"<tr>"
f"<td>{_esc(m.get('major'))}</td>"
f"<td>{_esc(m.get('version'))}</td>"
f"<td>{_esc(m.get('declared'))}</td>"
f"<td>{_esc(m.get('probed'))}</td>"
f"<td>{_esc(m.get('failed'))}</td>"
f"<td>{_esc(m.get('coverage_line') or '')}</td>"
f"<td>{_esc(m.get('critical', m.get('failed')))}</td>"
f"<td>{_esc(buckets.get('success_2xx', 0))}</td>"
f"<td>{_esc(buckets.get('client_4xx', 0))}</td>"
f"<td>{_esc(buckets.get('server_5xx', 0))}</td>"
@@ -50,22 +54,25 @@ def _section_rest(summary: dict[str, Any]) -> str:
)
return f"""
<h2>REST matrix</h2>
<p class="meta">total={_esc(rest.get("total"))} · failed={_esc(rest.get("failed"))}
· verbs: {verb_bits or ""}</p>
<h2>REST HTTP contract matrix (Layer A)</h2>
<p class="meta"><strong>coverage {_esc(coverage)}</strong>
· critical={_esc(critical)}
· probed={_esc(rest.get("probed") or rest.get("total"))}
· declared={_esc(rest.get("declared"))}
· verbs: {verb_bits or ""}
<br/>100% = HTTP matrix (IMPLEMENTED × majors + HEAD), not pulumi-vsphere resource count.</p>
<table>
<thead><tr><th>Major</th><th>Version</th><th>Probed</th><th>Failed</th>
<th>2xx</th><th>4xx</th><th>5xx</th><th>deep/stub</th></tr></thead>
<tbody>{"".join(major_rows) or '<tr><td colspan="8">—</td></tr>'}</tbody>
<thead><tr><th>Major</th><th>Version</th><th>Declared</th><th>Probed</th><th>Coverage</th>
<th>Critical</th><th>2xx</th><th>4xx</th><th>5xx</th><th>deep/stub</th></tr></thead>
<tbody>{"".join(major_rows) or '<tr><td colspan="10">—</td></tr>'}</tbody>
</table>
<h3>REST failures (sample)</h3>
<h3>REST critical failures (sample)</h3>
<table>
<thead><tr><th>Major</th><th>Verb</th><th>Path</th><th>Kind</th><th>Status</th><th>Detail</th></tr></thead>
<tbody>{"".join(fail_rows) or '<tr><td colspan="6">none</td></tr>'}</tbody>
</table>
"""
def _section_crud(summary: dict[str, Any]) -> str:
crud = summary.get("crud") or {}
flows = crud.get("flows") or []