BMC: - collector/board.go: collectBMCFirmware() via ipmitool mc info, graceful skip if /dev/ipmi0 absent - collector/collector.go: append BMC firmware record to snap.Firmware - app/panel.go: show BMC version in TUI right-panel header alongside BIOS CPU SAT: - platform/sat.go: RunCPUAcceptancePack(baseDir, durationSec) — lscpu + sensors before/after + stress-ng - app/app.go: RunCPUAcceptancePack + RunCPUAcceptancePackResult methods, satRunner interface updated - app/panel.go: CPU row now reads real PASS/FAIL from cpu-*/summary.txt via satStatuses(); cpuDetailResult shows last SAT summary + audit data - tui/types.go: actionRunCPUSAT, confirmBody for CPU test with mode label - tui/screen_health_check.go: hcCPUDurations [60,300,900]s; hcRunSingle(CPU)→confirm screen; executeRunAll uses RunCPUAcceptancePackResult - tui/forms.go: actionRunCPUSAT → RunCPUAcceptancePackResult with mode duration - cmd/bee/main.go: bee sat cpu [--duration N] subcommand Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
90 lines
4.5 KiB
Markdown
90 lines
4.5 KiB
Markdown
# Backlog
|
||
|
||
## BMC версия через IPMI
|
||
|
||
**Статус:** реализовано.
|
||
|
||
Добавить сбор версии BMC firmware в board collector:
|
||
- Команда: `ipmitool mc info` → поле `Firmware Revision`
|
||
- Записывать в `hardware.firmware[]` как `{device_name: "BMC", version: "..."}`
|
||
- Показывать в TUI правой колонке рядом с BIOS версией
|
||
- Graceful skip если `/dev/ipmi0` отсутствует (silent: same pattern as PSU collector)
|
||
|
||
## CPU acceptance test через stress-ng
|
||
|
||
**Статус:** реализовано. CPU в Health Check получает PASS/FAIL из summary.txt.
|
||
|
||
Добавить CPU SAT на базе `stress-ng`:
|
||
- Bake `stress-ng` в ISO (добавить в `bee.list.chroot`)
|
||
- Новый `bee sat cpu` — запускает `stress-ng --cpu 0 --cpu-method all --timeout <N>` где N = duration из режима (Quick=60s, Standard=300s, Express=900s)
|
||
- Параллельно снимает температуры через `sensors` и throttle-флаги из аудит JSON
|
||
- Результат: SAT архив с summary.txt в формате других SAT (overall_status=OK/FAILED)
|
||
- После реализации: CPU в Health Check получает реальный PASS/FAIL статус
|
||
|
||
## Real hardware validation
|
||
|
||
**Статус:** ожидает доступа к железу.
|
||
|
||
Что осталось подтвердить на практике:
|
||
- `bee sat nvidia` на реальном NVIDIA GPU host
|
||
- `bee sat storage` на NVMe/SATA/RAID host
|
||
- `ipmitool sdr` parsing на сервере с реальным BMC/IPMI
|
||
- vendor RAID tooling (`storcli64`, `sas2ircu`, `sas3ircu`, `arcconf`, `ssacli`) в живом ISO
|
||
|
||
## SAT result polish
|
||
|
||
**Статус:** частично закрыто.
|
||
|
||
Что ещё можно улучшить после полевой проверки:
|
||
- точнее классифицировать vendor-specific self-test outputs в `storage SAT`
|
||
- подобрать дефолты `memtester` по объёму RAM на целевых машинах
|
||
- при необходимости расширить `bee-gpu-stress` по длительности/нагрузке
|
||
|
||
## Hardware Contract backlog
|
||
|
||
**Статус:** уточнён, сокращён до `bee`-only snapshot scope.
|
||
|
||
### Не backlog для `bee`
|
||
|
||
Эти задачи не должны реализовываться в `bee`, потому что относятся к централизованному ingest/lifecycle слою:
|
||
- `status_history`
|
||
- `status_changed_at`
|
||
- определение замены компонента между snapshot'ами
|
||
- timeline/lifecycle/history по diff между экспортами
|
||
|
||
`bee` отвечает только за текущий snapshot железа и `status_checked_at`.
|
||
|
||
### Реализуемо инкрементально
|
||
|
||
Эти поля можно развивать дальше по мере появления реальных sample outputs и vendor-specific parser'ов:
|
||
- `cpus.correctable_error_count`
|
||
- `cpus.uncorrectable_error_count`
|
||
- `power_supplies.life_remaining_pct`
|
||
- `power_supplies.life_used_pct`
|
||
- `pcie_devices.battery_charge_pct`
|
||
- `pcie_devices.battery_health_pct`
|
||
- `pcie_devices.battery_temperature_c`
|
||
- `pcie_devices.battery_voltage_v`
|
||
- `pcie_devices.battery_replace_required`
|
||
|
||
### Vendor/platform-specific, часто пустые
|
||
|
||
Эти поля допустимо оставлять пустыми на части платформ даже после реализации parser'ов:
|
||
- `power_supplies.life_remaining_pct`
|
||
- `power_supplies.life_used_pct`
|
||
- часть `pcie_devices.battery_*` для неподдержанных RAID/NIC/GPU вендоров
|
||
|
||
### Unsupported в `bee`
|
||
|
||
Эти поля считаются нереалистичными для общего OS-level hardware snapshotter без synthetic/fake data:
|
||
- `cpus.life_remaining_pct`
|
||
- `cpus.life_used_pct`
|
||
- `memory.life_remaining_pct`
|
||
- `memory.life_used_pct`
|
||
- `memory.spare_blocks_remaining_pct`
|
||
- `memory.performance_degraded`
|
||
|
||
Причина: у обычного Linux-host audit обычно нет честного vendor-neutral runtime source для этих метрик.
|
||
|
||
Эти поля считаются дропнутыми из backlog `bee` и не должны возвращаться в план работ без появления нового доказуемого локального источника данных на целевых машинах.
|