fix: stop scoring every HTTPS port as a BMC; name the missing license
netOrk's discovery took six switches for BMCs: the PortSpec for 443 added 5 points to every device with a web UI, and nothing else scored them. The port now carries no weight. The real BMC, a Supermicro X10DRL-i, was not recognised at all. Its web UI (ATEN firmware) gets a rule, as do iDRAC and iLO; discovery fetches those landing pages today. A rule for a Redfish error body covers the service root once discovery reads it. That board refuses Redfish without a Supermicro license, even the service root (403 OemLicenseNotPassed, "SUM DCMS OOB"). The library reports only the status, so open() reads the error body once more and raises RedfishLicenseError naming the licenses. Release 0.1.1.
This commit is contained in:
1 parent
c7d947a870
commit
93bbc63f3d
10 files changed
+183
-8
No files matched your search
@@ -109,10 +109,20 @@ class RedfishDriver(ManagementControllerDriver):
|
||||
|
||||
platform = "redfish"
|
||||
DRIVER_NAME = "redfish"
|
||||
#: Every Redfish service answers ``GET /redfish/v1/`` without credentials.
|
||||
PORT_SPECS = [PortSpec("https", 443, ("/redfish/v1/",))]
|
||||
HTTP_FINGERPRINT = [FingerprintRule("redfishversion", 10.0),
|
||||
FingerprintRule("#serviceroot.", 5.0)]
|
||||
#: Every Redfish service answers ``GET /redfish/v1/`` without credentials. The port
|
||||
#: itself is worth nothing: every switch with a web UI answers on 443.
|
||||
PORT_SPECS = [PortSpec("https", 443, ("/redfish/v1/",), weight=0.0)]
|
||||
HTTP_FINGERPRINT = [
|
||||
# The service root, and the error body a service refuses it with (an unlicensed
|
||||
# Supermicro X10 answers 403 with a Redfish error).
|
||||
FingerprintRule("redfishversion", 10.0),
|
||||
FingerprintRule("#serviceroot.", 5.0),
|
||||
FingerprintRule("@message.extendedinfo", 8.0),
|
||||
# Landing pages of the BMC web UIs: Supermicro X9-X11 (ATEN firmware), iDRAC, iLO.
|
||||
FingerprintRule("aten international", 6.0),
|
||||
FingerprintRule("idrac", 6.0),
|
||||
FingerprintRule("integrated lights-out", 6.0),
|
||||
]
|
||||
#: A BMC restart takes a few minutes before Redfish answers again.
|
||||
REBOOT_SETTLE_SECONDS = 180
|
||||
|
||||
|
||||
Reference in new issue
Block a user