forked from bonzo81/netbox-librenms-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
feat: parent child interfaces #87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
marcinpsk
wants to merge
164
commits into
fix/object-scoped-lookups
from
feat/parent-child-interfaces
Closed
Changes from all commits
Commits
Show all changes
164 commits
Select commit
Hold shift + click to select a range
6af3dc3
Merge pull request #330 from marcinpsk/fix/object-scoped-lookups
bonzo81 afca5fd
fix(import,tables,templates): harden malformed payloads + migrated-mo…
marcinpsk 9c10bbf
feat(pci): parent/LAG/child interface UI and PortStackLagPattern
marcinpsk eab0a14
fix(pci): address CodeRabbit review (sub-interface notice XSS, siblin…
marcinpsk 245e47e
fix(pci): refresh Parent/LAG cell on VC member switch; prefetch lag/p…
marcinpsk c0206c7
fix(pci): scope perms/lookups correctly for VM parent sync, OOB rows,…
marcinpsk 7921d16
fix(pci): scope LAG name-pattern matching to the device's LibreNMS OS
marcinpsk f55eeae
fix(pci): harden LAG/parent sync fetch, port_stack, VC target, messag…
marcinpsk f7d6806
fix(pci): reject cross-member links, skip OOB enrichment, guard paylo…
marcinpsk 08bf5ae
fix(pci): expose description filter field, fix F401 noqa placement, a…
marcinpsk 937fdc7
fix(pci): key cross-page LAG/parent selection by stable port_id
marcinpsk 31ccfee
fix(pci): resolve verify-row NetBox interface by stable port_id, not …
marcinpsk 1e4d158
fix(pci): drop unused _server_key class annotation on _PortIdResolveM…
marcinpsk f48bcb8
fix(pci): harden port_stack fetch, warn on incomplete LAG data, stabl…
marcinpsk 460e972
fix(pci): run auto-select on shift-click range selection too
marcinpsk 4847701
fix(pci): gate verify endpoint, normalize port_id, align VC cache key…
marcinpsk 646ed7e
fix(pci): comment block, marker-gated delete, unique verify row, gate…
marcinpsk 535236a
fix(pci): fail get_port_stack on malformed mappings instead of maskin…
marcinpsk 917ad4a
fix(pci): fail port_stack on non-object payload; target sync by row, …
marcinpsk f5abeb2
fix(pci): name-hint uses active display field, generic skip reason, a…
marcinpsk 94c06a9
fix(pci): scope LAG port_stack inference to host ports; lock relation…
marcinpsk 42a7c64
fix(pci): port_stack error status, JSON perm errors, robust verify bu…
marcinpsk f9f54b6
fix(pci): stable-id LAG/parent match and row-targeted missing_nb sync
marcinpsk f88b8c4
fix(pci): preserve server_key on interface refresh, normalize relatio…
marcinpsk edd0044
fix(pci): validate LAG/parent links before saving
marcinpsk 1c5ff8f
fix(pci): don't echo validation exception detail in LAG/parent link r…
marcinpsk dbba132
fix(pci): harden port relationship resolution (malformed names, ambig…
marcinpsk 7486ed6
fix(pci): suppress migrated-donor relationship sync, narrow name-hint…
marcinpsk 333b8a6
fix(pci): finish migrated-mode NetBox-only modal + don't re-enable st…
marcinpsk d303223
fix(pci): normalize port_id key types; gate verify re-enable on success
marcinpsk d7bdf82
fix(pci): honor port_stack error status before mappings; roll back ve…
marcinpsk 23cfdad
fix(pci): pin lag/parent resolution to the row's owner; reject cross-…
marcinpsk afa874c
test(pci): convert port_id interface resolution to real DB
marcinpsk a6fce03
test(pci): real objects for same-owner guard + lag/parent builders
marcinpsk 5d23e0d
test(oob): real Device/Interface for OOB-row context reconciliation
marcinpsk cddd266
fix(pci): store canonical port-record ids in sub_interfaces map
marcinpsk 6418e4a
fix(pci): roll back VC member dropdown through TomSelect, not the bar…
marcinpsk 3c8765a
refactor(pci): let format_html be the single escape point for relatio…
marcinpsk 2eecb27
fix(interfaces): detect LAG signals on the selected interface-name field
marcinpsk ddc013d
fix(interfaces): emit server_key in migrated mode for JS-driven POSTs
marcinpsk 45f03b4
fix(librenms): log a warning when a configured LAG name pattern fails…
marcinpsk a335230
fix(ui): fail fast on missing CSRF token before relationship-sync POST
marcinpsk 13a7bde
fix(ui/tests): reject empty CSRF token value; check every bulk-select…
marcinpsk d16774f
fix(ui): seed VC-member verified baseline from select.value fallback
marcinpsk 825a60e
fix(librenms): catch JSON decode errors before broad request exceptio…
marcinpsk cc02999
test(tables): guard that the LAG sync button lives in the combined Pa…
marcinpsk 6209ab2
fix(pci): clear cross-page auto-parents when auto-select LAG members …
marcinpsk 008492b
fix(pci): guard non-string device_os; seed VC rollback baseline at init
marcinpsk 725bd7a
fix(pci): restore LibreNMS ID column + readable relationship badge; i…
marcinpsk 78f14f9
fix(pci): make the Match relationship badge readable; assert badge co…
marcinpsk 41f92cf
ui(pci): compact single-pill Parent/LAG badges for narrow screens
marcinpsk 5b3f637
fix(pci): guard VC member lookup against a missing interface name
marcinpsk 6eb0ffb
docs: align production docstrings to Google-style
marcinpsk 228c75a
docs(tests): condense test docstrings to the one-line convention
marcinpsk dcca151
fix(pci): preserve a port-id-resolved interface in format_interface_data
marcinpsk bf0e7bc
fix(interfaces): exclude OOB rows from relationship sync; guard malfo…
marcinpsk 7cf92d6
fix(interfaces): preserve an empty VC-member baseline for verify roll…
marcinpsk 6e455db
docs(interfaces): correct the LAG-aggregate port_stack position note
marcinpsk 92b1f2d
fix(librenms): disable LAG name-pattern matching for a present-but-un…
marcinpsk ef2bb20
fix(interfaces): restore shared agg_iface.type when a LAG member fail…
marcinpsk 82c19d2
fix(js): respect a blank VC member-select instead of falling back to …
marcinpsk a70fce4
fix(interfaces): guard nested lag_members/sub_interfaces maps against…
marcinpsk 9bb262e
fix(interfaces): restrict physical-name normalization to numeric .N s…
marcinpsk ea75700
fix(interfaces): repaint the member-specific LibreNMS ID badge on VC …
marcinpsk 8fe5ed1
test(pci): repoint the interfaces render patch to the mixin chokepoint
marcinpsk 9952cc4
fix(pci): pin migration 0011 to the NetBox 4.2 extras floor (0122)
marcinpsk 1e0cb55
fix(pci): position-independent, id-normalized port_stack relationship…
marcinpsk 04dd46f
fix(pci): harden verify-path relationship-cache read against malforme…
marcinpsk 4ac6032
fix(pci): stop treating propVirtual as a LAG-fetch signal; real-DB mo…
marcinpsk 68d27cc
refactor(pci): share the cache relationship-map prep across table and…
marcinpsk b4b3db3
feat(pci): expose the inline relationship sync button on a mismatch row
marcinpsk 30cbb3f
refactor(pci): unify the LAG/parent single-row sync views on a shared…
marcinpsk b34c5a0
refactor(pci): dedupe the bulk LAG/parent relationship passes
marcinpsk 0974749
docs(pci): note the accepted low-severity ReDoS risk on lag_name_pattern
marcinpsk 9a8ea3d
fix(pci): harden + unify the LAG/parent relationship resolve & persist
marcinpsk 1c16041
fix(pci): consistent VC owner resolution, VM LAG suppression, OS-scop…
marcinpsk 3b670ef
refactor(pci): reuse canonical resolver + shared validation-error helper
marcinpsk 3f58f0b
fix(pci): resolve LAG/parent relationships by the selected name field…
marcinpsk 4ce28b1
fix(parent-child): SAP marker across all names + context server_key i…
marcinpsk d28730f
fix(sync): suppress "synced successfully" when all interfaces were co…
marcinpsk dd40e9b
fix(pci): detect sub-interfaces across all known port names
marcinpsk 75276e2
fix(mappings): submit pk for PortStackLagPattern bulk selection
marcinpsk d2dab1c
fix(parent-child): physical-port + VC-member resolution robustness
marcinpsk 17721dd
fix(migrations): align 0011 PortStackLagPattern field state with the …
marcinpsk c47f33a
fix(interfaces): drop ambiguous shared names from the port name index
marcinpsk f3f528c
fix(models): make PortStackLagPattern.librenms_os unique case-insensi…
marcinpsk d894644
fix(migrations): pre-clean librenms_os casing before the CI-unique co…
marcinpsk 5b1c4da
fix(interfaces): guard non-string names in _has_lag_signals
marcinpsk 3e7aa98
perf(interfaces): load LAG patterns once per refresh; compute names once
marcinpsk 5616071
perf(interfaces): resolve VC member per port from a prebuilt map, not…
marcinpsk 7cf5239
refactor(interfaces): share LAG-aggregate type=lag promotion
marcinpsk 80f2885
test(tables): restore real coverage of render_librenms_id colouring
marcinpsk 5c77ab8
fix(resolver): keep nameless valid port_ids in the by_id LAG lookup
marcinpsk 6c965a1
test(interfaces): update VC-member call assertion for the members_by_…
marcinpsk 783b458
fix(migrate): strip before dedup/canonicalize librenms_os in 0012 pre…
marcinpsk c6a7836
test(migration): make 0012 strip-canonicalization a real red->green
marcinpsk d8fb7ae
fix(pci): skip non-string caller-supplied LAG patterns instead of cra…
marcinpsk 5ad78af
docs(pci): correct the LAG/parent delegation comment to the single pa…
marcinpsk d3e78fc
feat(nav): add Port Stack LAG Patterns to the Rules & Patterns tabs
marcinpsk 34d8564
docs(pci): document resolve_port_relationships' name-field/compiled-p…
marcinpsk fc55aca
fix(migrate): pin 0012 to its db alias and trim the CI-unique constraint
marcinpsk 9fd51c8
test(interfaces): verify the repaint badge through a real virtual cha…
marcinpsk d39d269
fix(nav): carry aria-current="page" on the Port Stack LAG Patterns pill
marcinpsk 5ed0abf
fix(interfaces): match LAG/parent by the user-selected name field too
marcinpsk a8ac555
fix(sync): survive concurrent DB conflicts in the bulk LAG/parent pass
marcinpsk 8d1f147
fix(sync): return a JSON 409 for concurrent conflicts in the single-r…
marcinpsk cc022dd
fix(utils): tolerate a missing port name in get_virtual_chassis_member
marcinpsk be3099d
test(templates): make the migrated-guard scanner branch-aware
marcinpsk 82c2564
test(templates): pin a non-empty CSRF token value in the VLAN sync pa…
marcinpsk db3d3b3
fix(parent-child): resolve R18 CodeRabbit findings
marcinpsk 0120dc0
fix(parent-child): fail-closed OS scoping, authoritative port_id, N+1…
marcinpsk fb177f9
fix(parent-child): owner-pin name-hint on a VC + restore shared insta…
marcinpsk 0f0cbb0
fix(parent-child): pin a cross-page VC parent to the child row's sele…
marcinpsk 9af3da6
test(parent-child): drive the port_id-authoritative verify tests agai…
marcinpsk a3b48ed
fix(parent-child): scope VC member name-heuristic to physical/sub-int…
marcinpsk c3b482f
fix(parent-child): unwind an auto-selected on-page parent when its la…
marcinpsk 917629f
fix(parent-child): preserve a manually-selected LAG member when the a…
marcinpsk e3f6191
refactor(parent-child): centralize relationship-map normalization; no…
marcinpsk dad839a
perf(parent-child): build the interface index once in single-row rela…
marcinpsk fd48fb1
refactor(parent-child): dedupe LAG/parent sync-status computation in …
marcinpsk 399a3ed
refactor(parent-child): hoist the relationship status_map to a module…
marcinpsk 19f0559
refactor(parent-child): dedupe the interface-sync Refresh button acro…
marcinpsk 8f32900
fix(parent-child): also recognize ethernet-family names in the VC mem…
marcinpsk 6336894
fix(migrations): renumber PortStackLagPattern migrations after develo…
marcinpsk 099090e
fix(cascade): harden _build_relationship_maps ports + reconcile verif…
marcinpsk 77650b2
fix(cascade): align develop-owned refresh-button test with parent-chi…
marcinpsk d60d157
fix(migrations): renumber parent-child migrations
marcinpsk eb75d93
fix(parent-child): restore persistent relationship warning
marcinpsk c565275
fix(review): centralize relationship validation paths
marcinpsk 49083ae
fix(parent-child): address review follow-ups
marcinpsk 3ef0385
fix(parent-child): harden relationship review paths
marcinpsk def877e
refactor(sync): move validation_error_detail to utils
marcinpsk 112858a
fix(ui): CSS.escape the injected-parent selectors
marcinpsk 1583df1
test(review): pin preflight tolerance; tighten verify/render seams
marcinpsk 0ca1525
test(review): make the JS-source pins mutation-proof
marcinpsk ecbe4c3
fix(vc): treat an empty prefetched member map as no map
marcinpsk ae014ef
test(templates): match the migrated guard as an and-conjunct
marcinpsk 00fff22
fix(interfaces): scope the relationship sync to the user's own objects
marcinpsk a5a5adc
test(interfaces): patch the scoped lookup, not the removed shortcut
marcinpsk b6fe9c7
test(interfaces): use the configured LibreNMS API fixture
marcinpsk df2b2aa
fix(sync): address relationship review findings
marcinpsk 007a74e
fix(interfaces): prefetch VM parent links
marcinpsk 06c6eb6
test(interfaces): expect invalid targets to skip
marcinpsk 392e614
fix(interfaces): normalize selected port ids
marcinpsk 7069748
test(cables): remove duplicate stale-interface case
marcinpsk 1e01a5f
fix(review): harden interface relationship checks
marcinpsk f78e565
fix(ui): label parent notice close button
marcinpsk 0508a27
fix(sync): keep relationship targets current
marcinpsk f6e408e
refactor(sync): share locked interface target selection
marcinpsk 8b81821
fix(interfaces): harden relationship synchronization
marcinpsk c9a795e
fix(interfaces): declare the chassis re-lock instead of spelling it
marcinpsk 857b904
test(interfaces): put the verify and relationship suites on their rea…
marcinpsk 5b001cb
test(conftest): isolate the cache and restore migration-seeded rows
marcinpsk 565a915
test(interfaces): keep the suite-wide config mock off the stub server
marcinpsk 4571be8
fix(interfaces): read the port_stack keys LibreNMS actually sends
marcinpsk 2374d10
fix(interfaces): keep the cross-chassis parent link working on NetBox…
marcinpsk 2377a3c
fix(sync): close two permission and robustness gaps, harden their tests
marcinpsk ae16c92
fix(tables): bind the interface table columns per instance, not on th…
marcinpsk ca882fa
fix(interfaces): complete review contracts
marcinpsk 985db54
fix(interfaces): preserve VM validation errors
marcinpsk f321f8b
refactor(interfaces): name relationship source cases
marcinpsk 98d5dba
test(interfaces): use configured server key
marcinpsk d917a1a
refactor(interfaces): share relationship row resolution
marcinpsk dec85f0
test(interfaces): prove incomplete relationship fetches
marcinpsk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.