Problem
SD-WAN dual-device configuration groups (UX 2.0) assign features to specific
devices via device_tags. Each verify_* test that iterates over UX 2.0
feature blocks (BGP, OSPF, OMP, ...) needs the same filter to know which
features belong to this router and which are assigned to its pair partner
and must be skipped. Duplicating the detection logic in each verify_* test
creates copy-paste risk and inconsistent behavior as the SD-WAN Manager
version-detection rules evolve (20.15 tags vs 20.18+ topology_label).
Proposal
Add IOSXETestBase.get_excluded_features(router, config_group) -> set[str]
returning the feature names that belong to the OTHER device in a dual-device
pair and should be skipped for this router.
Detection order:
- SD-WAN 20.18+ — match by non-empty
router.topology_label.
- SD-WAN 20.15 and earlier — match by any non-empty string in
router.tags.
Fail-safe direction on any detection failure: return an empty set (over-test
rather than silently skip) and log a WARNING for operator visibility.
Resolution
Implemented in #35.
Problem
SD-WAN dual-device configuration groups (UX 2.0) assign features to specific
devices via
device_tags. Each verify_* test that iterates over UX 2.0feature blocks (BGP, OSPF, OMP, ...) needs the same filter to know which
features belong to this router and which are assigned to its pair partner
and must be skipped. Duplicating the detection logic in each verify_* test
creates copy-paste risk and inconsistent behavior as the SD-WAN Manager
version-detection rules evolve (20.15
tagsvs 20.18+topology_label).Proposal
Add
IOSXETestBase.get_excluded_features(router, config_group) -> set[str]returning the feature names that belong to the OTHER device in a dual-device
pair and should be skipped for this router.
Detection order:
router.topology_label.router.tags.Fail-safe direction on any detection failure: return an empty set (over-test
rather than silently skip) and log a WARNING for operator visibility.
Resolution
Implemented in #35.