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>
4.5 KiB
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 hostbee sat storageна NVMe/SATA/RAID hostipmitool sdrparsing на сервере с реальным 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_historystatus_changed_at- определение замены компонента между snapshot'ами
- timeline/lifecycle/history по diff между экспортами
bee отвечает только за текущий snapshot железа и status_checked_at.
Реализуемо инкрементально
Эти поля можно развивать дальше по мере появления реальных sample outputs и vendor-specific parser'ов:
cpus.correctable_error_countcpus.uncorrectable_error_countpower_supplies.life_remaining_pctpower_supplies.life_used_pctpcie_devices.battery_charge_pctpcie_devices.battery_health_pctpcie_devices.battery_temperature_cpcie_devices.battery_voltage_vpcie_devices.battery_replace_required
Vendor/platform-specific, часто пустые
Эти поля допустимо оставлять пустыми на части платформ даже после реализации parser'ов:
power_supplies.life_remaining_pctpower_supplies.life_used_pct- часть
pcie_devices.battery_*для неподдержанных RAID/NIC/GPU вендоров
Unsupported в bee
Эти поля считаются нереалистичными для общего OS-level hardware snapshotter без synthetic/fake data:
cpus.life_remaining_pctcpus.life_used_pctmemory.life_remaining_pctmemory.life_used_pctmemory.spare_blocks_remaining_pctmemory.performance_degraded
Причина: у обычного Linux-host audit обычно нет честного vendor-neutral runtime source для этих метрик.
Эти поля считаются дропнутыми из backlog bee и не должны возвращаться в план работ без появления нового доказуемого локального источника данных на целевых машинах.