fix: group alternative fingerprint rules (0.1.2)
One Redfish answer (the service root or the error a service refuses it with) and one landing page (Supermicro/ATEN, iDRAC or iLO) can match, never all of them. Grouped, the driver's maximum in netOrk's discovery is 21 instead of 41, and a Supermicro landing page alone (6 of 21) outranks the "linux" its BMC reports over SNMP (5 of 18). Requires napalm-device-types 4.8 for FingerprintRule.group.
This commit is contained in:
1 parent
93bbc63f3d
commit
bfbeb19255
5 files changed
+35
-9
No files matched your search
@@ -45,3 +45,19 @@ def test_idrac_and_ilo_landing_pages_are_recognised():
|
||||
def test_a_switch_page_scores_nothing():
|
||||
page = '<html><head><title>Loading...</title></head><body>Web Switch</body></html>'
|
||||
assert _score(page) == 0.0
|
||||
|
||||
|
||||
def test_alternatives_count_once_towards_the_maximum():
|
||||
# One Redfish answer (service root or error), the service root's type marker, and one
|
||||
# landing page: 10 + 5 + 6. Summing every alternative (41) let a bare "linux" in the
|
||||
# BMC's SNMP sysDescr (5 of 18) beat the Supermicro landing page (6 of 41).
|
||||
from napalm_device_types import rules_max_weight
|
||||
|
||||
assert rules_max_weight(RedfishDriver.HTTP_FINGERPRINT) == 21.0
|
||||
|
||||
|
||||
def test_supermicro_landing_page_alone_outranks_a_linux_sysdescr():
|
||||
from napalm_device_types import rules_max_weight
|
||||
|
||||
page = _score((X10 / "landing_page.html").read_text())
|
||||
assert page / rules_max_weight(RedfishDriver.HTTP_FINGERPRINT) > 5.0 / 18.0
|
||||
Reference in new issue
Block a user