feat: surface BMC collection errors in parse-errors panel and event log
When Inspur component.log sections return {"error":"...","code":N} instead
of hardware data, the parser now:
- stores them in AnalysisResult.CollectionErrors (new model field)
- mirrors each one into result.Events with Source="BMC/<section>"
so the chart viewer event table shows the specific BMC module
- feeds them into /api/parse-errors as bmc_collection_error entries
UI adds a collapsible "Collection diagnostics" panel below the chart
iframe (outside /chart) that appears when /api/parse-errors returns
any items; resets on data clear.
Affected sections in this dump: HDD (1458), PCIe Devices (1458),
Network Adapters (1458), Disk Backplane.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -933,3 +933,73 @@ code {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
/* ── Parse / collection errors panel ───────────────────────────────────── */
|
||||
.parse-errors-section {
|
||||
margin: 0 auto;
|
||||
max-width: 1200px;
|
||||
padding: 0 1.5rem 1.5rem;
|
||||
}
|
||||
|
||||
.parse-errors-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: .55rem .75rem;
|
||||
background: var(--warn-bg);
|
||||
border: 1px solid #f0e0c0;
|
||||
border-radius: 6px 6px 0 0;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
font-weight: 600;
|
||||
font-size: .85rem;
|
||||
color: var(--warn-fg);
|
||||
}
|
||||
|
||||
.parse-errors-toggle {
|
||||
font-size: .75rem;
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.parse-errors-body {
|
||||
border: 1px solid #f0e0c0;
|
||||
border-top: none;
|
||||
border-radius: 0 0 6px 6px;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.parse-errors-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: .82rem;
|
||||
}
|
||||
|
||||
.parse-errors-table th {
|
||||
background: var(--surface-3);
|
||||
padding: .4rem .65rem;
|
||||
text-align: left;
|
||||
font-weight: 600;
|
||||
color: var(--muted);
|
||||
border-bottom: 1px solid var(--border);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.parse-errors-table td {
|
||||
padding: .38rem .65rem;
|
||||
border-bottom: 1px solid var(--border-lite);
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.parse-errors-table tr:last-child td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.parse-error-row.parse-error-error td:first-child {
|
||||
color: var(--crit-fg);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.parse-error-row.parse-error-warning td:first-child {
|
||||
color: #7a5200;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user