bb-Ricardo / check_redfish

A monitoring/inventory plugin to check components and health status of systems which support Redfish. It will also create a inventory of all components of a system.
MIT License
113 stars 34 forks source link

Failed BMC Check on DL360 Gen10 #130

Closed Rokuda64 closed 2 weeks ago

Rokuda64 commented 3 months ago

Hello Ricardo,

I have a DL360 Gen10 with iLO firmware 3.04 Apr 17 2024 which is failing it's bmc check.

check_redfish on  next-release [$!?] via py3venv …
➜ ./check_redfish.py '--bmc' '--host' 'REDACTED' '--retries' '3' '--timeout' '13' -u REDACTED -p 'REDACTED'
Traceback (most recent call last):
  File "./check_redfish.py", line 172, in <module>
    if any(x in args.requested_query for x in ['bmc', 'all']):      get_bmc_info()
  File "/home/user/Documents/monitoring/check_redfish/cr_module/bmc.py", line 30, in get_bmc_info
    get_bmc_info_generic(manager)
  File "/home/user/Documents/monitoring/check_redfish/cr_module/bmc.py", line 62, in get_bmc_info_generic
    bmc_model = " ".join(bmc_fw_version.split(" ")[0:2])
AttributeError: 'NoneType' object has no attribute 'split'

I have inserted a print statement, to see what is going on but I'm not able to fix it myself :/

diff --git a/cr_module/bmc.py b/cr_module/bmc.py
index f1af3a6..8c492d3 100644
--- a/cr_module/bmc.py
+++ b/cr_module/bmc.py
@@ -53,7 +53,8 @@ def get_bmc_info_generic(redfish_url):
         manager_response = view_response.get("ILO")[0]
     else:
         manager_response = view_response
-
+    import pprint
+    pprint.pprint(manager_response)
     # get model
     bmc_model = manager_response.get("Model")
     bmc_fw_version = manager_response.get("FirmwareVersion")

With that I just got:

{'@Message.ExtendedInfo': [{'MessageId': 'Base.1.18.InternalError'}],
 '@odata.id': '/redfish/v1/Managers/1/',
 '@odata.type': '#Manager.v1_5_1.Manager'}
Traceback (most recent call last):
  File "./check_redfish.py", line 172, in <module>
    if any(x in args.requested_query for x in ['bmc', 'all']):      get_bmc_info()
  File "/home/user/Documents/monitoring/check_redfish/cr_module/bmc.py", line 30, in get_bmc_info
    get_bmc_info_generic(manager)
  File "/home/user/Documents/monitoring/check_redfish/cr_module/bmc.py", line 63, in get_bmc_info_generic
    bmc_model = " ".join(bmc_fw_version.split(" ")[0:2])
AttributeError: 'NoneType' object has no attribute 'split'

We have updated everything with the latest SPP and the error has not changed, so I assume it's not a problem of the system itself. There is also no error or warning visible on the iLO interface. If you need anything for further investigation, please let me know.

Thank your for your great support

bb-Ricardo commented 3 months ago

Hi, this seems to be a bug in the iLO 3.04 firmware. It returns a Base.1.18.InternalError. Can you try if 3.05 works for you?

Rokuda64 commented 2 months ago

Hello, it seems like the same problem persists with iLO Firmware Version 3.05 Jun 19 2024

bb-Ricardo commented 2 months ago

Thank you for testing. Will add a mitigation but this will probably result in less output.

Rokuda64 commented 1 month ago

Do you need any more information? Cause it's still set on "awaiting reply". Not sure what to do tbh

bb-Ricardo commented 1 month ago

Hi,

soon I will be back and will have some time to take care of it.

bb-Ricardo commented 1 month ago

Hi,

I just pushed a "fix" to the next-release branch. Can you please test it and report back?

Thank you very much.

bb-Ricardo commented 2 weeks ago

fixed in version 1.8.0