```bash
$ netbox_agent -du --device.custom_fields="last_run=$(date),last_run_ts=$(date +'%s')"
```
obviously, custom_fields need to be create manually in netbox admin
- Added an option to specify an SSL CA certificates file to talk to the
Netbox API
- Enhanced GPU expansion bays inventory: internal GPU (VGA) goes into
the blade, external GPU (3D) goes into the expansion bay
- Unified the way expansion bays are managed (GPU and drive exansion
bays)
- Started to refactor `network` module to make it more readable
- Dependencies in `setup.py` now reads its requirements from
`requirements.txt` to avoid double maintenance
This patch adds the ability to detect and manage GPU and Disk expansion
bays, and either add their internal components into the device
corresponding to the blade server, or into a dedicated device.
It takes advantage of the work made by @cyrinux on GPU bays management, and
applies the same principle to the external disk bays, but harmonize the
inventory management:
- If no argument is specified on the command line, the GPU cards, RAID
controllers and their attached disks are added in the blade device,
and the device corresponding to an expansion device is deleted.
- If the `--expansion-as-device` option is specified on the command
line, a dedicated device corresponding to the expansion bay is
created, and the GPUs, RAID card and attached disks are removed from
the blade device and added to the expansion device.
This patch adds an option to clear remaining devices in the context of a
new device replacing an old one with the same name but with a different
hardware.
The serial leading to the bug is described below:
- A first server is registered under name `A` with serial `X`
- A second server is registered under name `B` with serial `Y`
- The server with serial `X` is decomissionned, but not removed
- The server with serial `Y` is reinstalled with name `A`
In this case, a device with serial `X` is well found, and netbox agent
tries to update its name. But this raises an error because of the unique
constraint on name, as another device already holds this name.
The proposed solution to handle this situation is to delete any device
with same `name` but different `serial` before handling a device.
As this is not necessarily the expected behavior, it can be enabled by
using the `--purge-old-devices` to avoid breaking existing inventory.
* When nvme binary absent or too old and no json output, this crash the inventory, i prefer just pass nvme inventory and continue
* log if nvme-cli is not installed
* Add "ProLiant BL460c Gen10 Graphics Exp"
* Add GPU expansion support for HP_ProLiant_BL460c_Gen10_Graphics_Exp
* Add ProLiant BL460c Graphics Expansion Blade support in README
* Dont crash if vendor other than HP
* Typo