Fix dynamic service templates not applied during device discovery#19286
Open
Florent4C wants to merge 1 commit intolibrenms:masterfrom
Open
Fix dynamic service templates not applied during device discovery#19286Florent4C wants to merge 1 commit intolibrenms:masterfrom
Florent4C wants to merge 1 commit intolibrenms:masterfrom
Conversation
When a new device is discovered, applyDeviceAll() iterates all service templates and calls applyDevice() for each. However, for dynamic templates, updateDevices() was never called to refresh the pivot table before checking device membership. This caused new devices matching dynamic rules to be silently skipped. The apply() method (used by the UI "Apply" button) already calls updateDevices() before processing. This fix adds the same call in the discovery path (applyDeviceAll), ensuring dynamic templates are consistently applied to newly discovered devices.
|
|
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
discovered devices during the discovery process
applyDeviceAll()method (called fromServices::discover())never calls
updateDevices()to refresh the pivot table beforechecking device membership, causing new devices to be silently skipped
apply()method) already handles thiscorrectly — this fix aligns the discovery path with the same behavior
Steps to reproduce
os in iosxr,iosxe)discover_services_templatesFix
Call
updateDevices()for dynamic templates inapplyDeviceAll()before calling
applyDevice(), so the pivot table is up to datewhen the device membership check runs.
Test plan
lnms device:discover <hostname>)When a new device is discovered, applyDeviceAll() iterates all service templates and calls applyDevice() for each. However, for dynamic templates, updateDevices() was never called to refresh the pivot table before checking device membership. This caused new devices matching dynamic rules to be silently skipped.
The apply() method (used by the UI "Apply" button) already calls updateDevices() before processing. This fix adds the same call in the discovery path (applyDeviceAll), ensuring dynamic templates are consistently applied to newly discovered devices.
Please give a short description what your pull request is for
DO NOT DELETE THE UNDERLYING TEXT
Please note
Testers
If you would like to test this pull request then please run:
./scripts/github-apply <pr_id>, i.e./scripts/github-apply 5926After you are done testing, you can remove the changes with
./scripts/github-remove. If there are schema changes, you can ask on discord how to revert.