Introduce canonical hardware.devices repository and align UI/Reanimator exports
This commit is contained in:
22
README.md
22
README.md
@@ -157,6 +157,7 @@ POST /api/collect
|
||||
|
||||
- `GET /api/export/csv` — серийные номера
|
||||
- `GET /api/export/json` — полный `AnalysisResult` (включая `raw_payloads`)
|
||||
- `GET /api/export/reanimator` — экспорт для Reanimator
|
||||
|
||||
Имена экспортируемых файлов:
|
||||
|
||||
@@ -165,6 +166,22 @@ POST /api/collect
|
||||
Пример:
|
||||
`2026-02-04 (SYS-421GE-TNHR2) - C8X123456789.json`
|
||||
|
||||
## Canonical inventory (`hardware.devices`)
|
||||
|
||||
В проекте используется единый реестр устройств сервера: `hardware.devices`.
|
||||
Это source of truth для UI и экспорта Reanimator.
|
||||
|
||||
Основные правила:
|
||||
- вкладки конфигурации читают данные устройств из `hardware.devices`;
|
||||
- `Device Inventory` строится по типам `pcie`, `storage`, `gpu`, `network`;
|
||||
- экспорт Reanimator использует тот же canonical-реестр;
|
||||
- расхождение данных UI и Reanimator считается дефектом.
|
||||
|
||||
Дедупликация в canonical-реестре:
|
||||
1. по usable `serial_number` (не пустой и не `N/A/NA/NONE/NULL/UNKNOWN/-`);
|
||||
2. если serial отсутствует — по `bdf`;
|
||||
3. если serial и bdf отсутствуют — записи не схлопываются.
|
||||
|
||||
## API
|
||||
|
||||
```text
|
||||
@@ -181,10 +198,15 @@ GET /api/serials
|
||||
GET /api/firmware
|
||||
GET /api/export/csv
|
||||
GET /api/export/json
|
||||
GET /api/export/reanimator
|
||||
DELETE /api/clear
|
||||
POST /api/shutdown
|
||||
```
|
||||
|
||||
Примечания:
|
||||
- `GET /api/config` возвращает canonical inventory в `hardware.devices`.
|
||||
- `GET /api/serials` и `GET /api/firmware` строятся из того же canonical inventory.
|
||||
|
||||
`/api/status` и `/api/config` содержат метаданные источника:
|
||||
- `source_type`: `archive` | `api`
|
||||
- `protocol`: `redfish` | `ipmi` (для архивов может быть пустым)
|
||||
|
||||
Reference in New Issue
Block a user