- CPU: max speed, bus MHz, L1/L2/L3 cache (from sysfs), voltage, socket type; /proc/cpuinfo fallback for non-root
- Memory sticks: DDR type, form factor, part number, rank, data width, theoretical bandwidth
- GPU: new part type discovered via lspci + /sys/class/drm + nvidia-smi; shows VRAM and display outputs
- discover-only tree updated to show all new fields
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
build-cli.sh
Simple shell script that builds inventory-cli inside Docker and
extracts the binary to build/ (or a custom path). Replaces the
need to use the heavier build-and-load.sh just to compile the CLI.
--help
Replaced the terse usage() stub with a full UNIX man-page style
reference covering NAME, SYNOPSIS, DESCRIPTION, GLOBAL OPTIONS,
COMMANDS (grouped by area), PART TYPES, FIELD KEYS, EXAMPLES,
and NOTES.
discover-only [--type <type>]
New command that runs local hardware discovery without contacting
the inventory server and prints results as an ASCII tree rooted at
the hostname. Each section (CPUs, CPU Slots, Memory Sticks, Memory
Slots, Disks, NICs) lists discovered components with key attributes
inline. Useful for inspection and troubleshooting.
discovery.cpp: store interface name in K_NAME for NICs
ifname (e.g. "nic0", "eno1") is now emitted so discover-only and
the server-side UI can display the kernel device name.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- discovery.cpp: remove K_SERIAL emission from dmidecode CPU "ID" field
(it is the CPUID instruction result, identical across matching processors
in a multi-socket system, not a unique per-slot serial number)
→ upsert_part now falls through to K_SOCKET natural key, correctly
inserting both "Proc 1" and "Proc 2" as separate records
- discovery.cpp: skip memory slot blocks with missing or empty Locator
(HP ProLiant firmware returns a phantom type-17 block with no Locator;
this was causing a 19th slot record to be inserted with empty locator
that could never be deduplicated on subsequent runs)
Verified on HP ProLiant DL360 G7:
cpu=2, cpu_slots=2, memory_sticks=12, memory_slots=18, disks=5, nics=4
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>