feat: a missing license can say what the device withholds without it (4.15.0) #44

Merged
christianmanivong merged 2 commits from feat/license-withholds into main 2026-10-17 09:41:29 +00:00
Owner

LicenseDict gets withholds: NotRequired[List[str]], additive: what a device keeps back for want of a license while the rest of it answers.

Found on a Supermicro X10DRL-i with only SFT-OOB-LIC. Redfish answers, but Storage and UpdateService wait for DCMS. As a fact: {"name": "DCMS", "status": "missing", "withholds": ["drives", "firmware inventory"]}. A caller can now tell "partly licensed" from "unlicensed". netOrk derives bmc_license_partial and bmc_license_required from that (NetOrk/netork#1111, decided 2026-10-17).

  • models.py: the field, documented.
  • licenses.py: the docstring example.
  • tests/test_fact_getters.py: the field set, the new optional field. Red before, green after; 685 tests.
  • Version 4.15.0.
`LicenseDict` gets `withholds: NotRequired[List[str]]`, additive: what a device keeps back for want of a license while the rest of it answers. Found on a Supermicro X10DRL-i with only SFT-OOB-LIC. Redfish answers, but `Storage` and `UpdateService` wait for DCMS. As a fact: `{"name": "DCMS", "status": "missing", "withholds": ["drives", "firmware inventory"]}`. A caller can now tell "partly licensed" from "unlicensed". netOrk derives `bmc_license_partial` and `bmc_license_required` from that (NetOrk/netork#1111, decided 2026-10-17). - `models.py`: the field, documented. - `licenses.py`: the docstring example. - `tests/test_fact_getters.py`: the field set, the new optional field. Red before, green after; 685 tests. - Version 4.15.0.
christianmanivong added 1 commit 2026-10-17 09:32:19 +00:00
feat: a missing license can say what the device withholds without it (4.15.0)
CI / test (3.10) (push) Failing after 19s
CI / test (3.11) (push) Successful in 25s
CI / test (3.12) (push) Successful in 29s
CI / test (3.13) (push) Successful in 28s
CI / test (3.10) (pull_request) Failing after 20s
CI / test (3.11) (pull_request) Successful in 26s
CI / test (3.12) (pull_request) Successful in 30s
CI / test (3.13) (pull_request) Successful in 32s
2d1c40c87d
LicenseDict gets withholds: NotRequired[List[str]]: what a device keeps back
for want of a license while the rest of it answers. A Supermicro X10 with
only SFT-OOB-LIC answers Redfish but withholds its drives and firmware
inventory until DCMS is activated. That makes it partly licensed, not
unlicensed, and the caller can tell the two apart (NetOrk/netork#1111).
christianmanivong added 1 commit 2026-10-17 09:36:32 +00:00
test: read the withholds hint the way Python 3.10 reports it
CI / test (3.10) (push) Successful in 35s
CI / test (3.11) (push) Successful in 34s
CI / test (3.12) (push) Successful in 36s
CI / test (3.13) (push) Successful in 34s
CI / test (3.10) (pull_request) Successful in 33s
CI / test (3.11) (pull_request) Successful in 30s
CI / test (3.12) (pull_request) Successful in 31s
CI / test (3.13) (pull_request) Successful in 32s
634c142477
christianmanivong merged commit 4641063db6 into main 2026-10-17 09:41:29 +00:00
christianmanivong deleted branch feat/license-withholds 2026-10-17 09:41:29 +00:00
Sign in to join this conversation.