Summary
Initial run of the new scripts/Verify-ValidateSetParity.ps1 tool (#391) against NetBox v4.5.7 found 20 ValidateSet discrepancies across 17 unique parameters. Three are already being addressed by #390 (Cable_Profile), leaving 17 actionable findings tracked here.
This issue is a parent tracker — each finding should either be fixed in its own focused PR or explicitly deferred (and added to scripts/validateset-parity-exclusions.txt with a comment).
How to reproduce
./scripts/Verify-ValidateSetParity.ps1 -NetboxVersion v4.5.7
Requires PR #391 to be merged, or check out the tooling/validateset-parity-check branch.
Findings — by severity
🔴 High — users cannot create or filter on real API values
| Finding |
Files |
Missing API values |
| VPN Tunnel -Encapsulation |
New-NBVPNTunnel, Set-NBVPNTunnel |
l2tp, openvpn, pptp, wireguard — mainstream VPN types completely absent |
| VPN IKE Proposal -Authentication_Method |
New-NBVPNIKEProposal |
dsa-signatures, rsa-signatures |
| Get-NBDCIMInterface -Type |
Get-NBDCIMInterface |
104 interface types missing. Get- was not kept in sync with New-/Set- (which have all 216 types). Users cannot filter devices by the newer types (100GBASE, 400GBASE, 800GBASE, 1.6TbE, etc.). |
| VM -Status |
Get-, New-, Set-NBVirtualMachine |
paused (added in recent NetBox) |
| Rack -Status |
Get-, New-, Set-NBDCIMRack |
available |
| EventRule -Action_Type |
New-, Set-NBEventRule |
notification |
| VirtualMachineInterface -Mode |
New-NBVirtualMachineInterface |
q-in-q (NetBox 4.2+ feature) |
🟡 Medium — catalog drift (users miss newer hardware types)
| Finding |
Files |
Missing values |
| DCIM Cable -Type |
New-NBDCIMCable |
9 coax types: lmr-100/200/400, rg-6/8/11/59/62/213 |
| FrontPort / RearPort -Type |
New-NBDCIMFrontPort, New-NBDCIMRearPort |
11 per file: fc-apc/pc/upc, usb-a/b/c/micro-a/b/ab/mini-a/b |
🟢 Low — single-value gap, possibly deprecated endpoints
| Finding |
Files |
Missing values |
| DCIMInterfaceConnection -Connection_Status |
New-NBDCIMInterfaceConnection |
decommissioning (this endpoint is the old-style interface connection, superseded by cables — worth verifying it's still in use before fixing) |
✅ Already tracked (ignore here)
| Finding |
Status |
| Cable_Profile × 3 (New/Set/Get-NBDCIMCable) |
Being fixed in #390 |
Script limitations documented
The script suppresses several known false positives via scripts/validateset-parity-exclusions.txt:
| Exclusion |
Reason |
InvokeNetboxRequest.ps1::Method, Send-NBBulkRequest.ps1::Method |
HTTP verb enums, not NetBox choices |
Export-NBRackElevation.ps1::Face |
Both is a PN-only SVG render flag |
{New,Set}-NBCustomLink.ps1::Button_Class |
Bootstrap button variants |
{New,Set}-NBDCIMInterface.ps1::Mode |
Accepts legacy numeric/title-case values translated in begin {} — see #360. This also suppresses the q-in-q gap for DCIM interfaces; that specific missing value should be added without removing the exclusion. |
Recommended plan
- Fix VPN Tunnel -Encapsulation (highest-impact — 4 mainstream VPN types absent)
- Fix Get-NBDCIMInterface -Type drift — sync with
New-/Set- which already have the full set. Also add the DCIM Interface q-in-q value in the same PR since the exclusion for Mode currently hides it.
- Rack -Status
available — small, quick win
- VM -Status
paused — small, quick win
- VPN IKE Proposal -Authentication_Method — small
- EventRule -Action_Type
notification — small
- VMInterface -Mode
q-in-q — small
- FrontPort/RearPort -Type + DCIMCable -Type catalog adds — bigger but low urgency; group per endpoint
- DCIMInterfaceConnection -Connection_Status — research whether this endpoint is still worth maintaining first
Each fix should come with unit tests that iterate the full corrected value set and assert URI/body round-trip, using the same pattern as #390 does for Cable_Profile.
Raw script output
Full output of ./scripts/Verify-ValidateSetParity.ps1 -NetboxVersion v4.5.7 is ~600 lines; the file list and match scores are captured in this run:
Extracted 85 ChoiceSet classes from NetBox v4.5.7
Extracted 130 string-type ValidateSets from PowerNetbox
Loaded 7 exclusions from scripts/validateset-parity-exclusions.txt
Found 20 ValidateSet discrepancies vs NetBox v4.5.7
DCIM/Cables/Get-NBDCIMCable.ps1 :: -Cable_Profile (100% name match, see #390)
DCIM/Cables/New-NBDCIMCable.ps1 :: -Cable_Profile (100% name match, see #390)
DCIM/Cables/Set-NBDCIMCable.ps1 :: -Cable_Profile (100% name match, see #390)
DCIM/Cables/New-NBDCIMCable.ps1 :: -Type (missing 9 coax)
DCIM/FrontPorts/New-NBDCIMFrontPort.ps1 :: -Type (missing 11 USB/FC)
DCIM/Interfaces/Get-NBDCIMInterface.ps1 :: -Type (missing 104 — drift from New/Set)
DCIM/Interfaces/New-NBDCIMInterfaceConnection.ps1 :: -Connection_Status (missing decommissioning)
DCIM/Racks/Get-NBDCIMRack.ps1 :: -Status (missing available)
DCIM/Racks/New-NBDCIMRack.ps1 :: -Status (missing available)
DCIM/Racks/Set-NBDCIMRack.ps1 :: -Status (missing available)
DCIM/RearPorts/New-NBDCIMRearPort.ps1 :: -Type (missing 11 USB/FC)
Extras/EventRules/New-NBEventRule.ps1 :: -Action_Type (missing notification)
Extras/EventRules/Set-NBEventRule.ps1 :: -Action_Type (missing notification)
Virtualization/VirtualMachine/Get-NBVirtualMachine.ps1 :: -Status (missing paused)
Virtualization/VirtualMachine/New-NBVirtualMachine.ps1 :: -Status (missing paused)
Virtualization/VirtualMachine/Set-NBVirtualMachine.ps1 :: -Status (missing paused)
Virtualization/VirtualMachineInterface/New-NBVirtualMachineInterface.ps1 :: -Mode (missing q-in-q)
VPN/IKEProposal/New-NBVPNIKEProposal.ps1 :: -Authentication_Method (missing dsa-signatures, rsa-signatures)
VPN/Tunnel/New-NBVPNTunnel.ps1 :: -Encapsulation (missing l2tp, openvpn, pptp, wireguard)
VPN/Tunnel/Set-NBVPNTunnel.ps1 :: -Encapsulation (missing l2tp, openvpn, pptp, wireguard)
Related
Summary
Initial run of the new
scripts/Verify-ValidateSetParity.ps1tool (#391) against NetBox v4.5.7 found 20 ValidateSet discrepancies across 17 unique parameters. Three are already being addressed by #390 (Cable_Profile), leaving 17 actionable findings tracked here.This issue is a parent tracker — each finding should either be fixed in its own focused PR or explicitly deferred (and added to
scripts/validateset-parity-exclusions.txtwith a comment).How to reproduce
Requires PR #391 to be merged, or check out the
tooling/validateset-parity-checkbranch.Findings — by severity
🔴 High — users cannot create or filter on real API values
New-NBVPNTunnel,Set-NBVPNTunnell2tp,openvpn,pptp,wireguard— mainstream VPN types completely absentNew-NBVPNIKEProposaldsa-signatures,rsa-signaturesGet-NBDCIMInterfaceGet-was not kept in sync withNew-/Set-(which have all 216 types). Users cannot filter devices by the newer types (100GBASE, 400GBASE, 800GBASE, 1.6TbE, etc.).Get-,New-,Set-NBVirtualMachinepaused(added in recent NetBox)Get-,New-,Set-NBDCIMRackavailableNew-,Set-NBEventRulenotificationNew-NBVirtualMachineInterfaceq-in-q(NetBox 4.2+ feature)🟡 Medium — catalog drift (users miss newer hardware types)
New-NBDCIMCablelmr-100/200/400,rg-6/8/11/59/62/213New-NBDCIMFrontPort,New-NBDCIMRearPortfc-apc/pc/upc,usb-a/b/c/micro-a/b/ab/mini-a/b🟢 Low — single-value gap, possibly deprecated endpoints
New-NBDCIMInterfaceConnectiondecommissioning(this endpoint is the old-style interface connection, superseded by cables — worth verifying it's still in use before fixing)✅ Already tracked (ignore here)
Script limitations documented
The script suppresses several known false positives via
scripts/validateset-parity-exclusions.txt:InvokeNetboxRequest.ps1::Method,Send-NBBulkRequest.ps1::MethodExport-NBRackElevation.ps1::FaceBothis a PN-only SVG render flag{New,Set}-NBCustomLink.ps1::Button_Class{New,Set}-NBDCIMInterface.ps1::Modebegin {}— see #360. This also suppresses theq-in-qgap for DCIM interfaces; that specific missing value should be added without removing the exclusion.Recommended plan
New-/Set-which already have the full set. Also add the DCIM Interfaceq-in-qvalue in the same PR since the exclusion forModecurrently hides it.available— small, quick winpaused— small, quick winnotification— smallq-in-q— smallEach fix should come with unit tests that iterate the full corrected value set and assert URI/body round-trip, using the same pattern as #390 does for
Cable_Profile.Raw script output
Full output of
./scripts/Verify-ValidateSetParity.ps1 -NetboxVersion v4.5.7is ~600 lines; the file list and match scores are captured in this run:Related