Current Series Release Notes

5.14.0-4

Bug Fixes

  • The ReadOnly property of an attribute registry entry is now read whatever case a vendor uses for it. Dell’s manager and BIOS attribute registries spell it Readonly, so every entry from an iDRAC previously reported read_only as None rather than saying whether the attribute could be changed.

  • Fixes AttributeError: 'str' object has no attribute 'get' during error handling. This occurs when a service returns an error response whose JSON body is not an object (for example, a plain string or null) instead of a Redfish error object.

  • Virtual media devices now report their supported media types on BMCs that name the MediaTypes property MediaType, such as Fujitsu iRMC S5 with firmware 3.54P. Previously media_types was empty on these BMCs, so Ironic found no device to insert an ISO into. The misnamed property is only used when MediaTypes is missing.

5.14.0

New Features

  • Adds per-job status to the Dell OEM Lifecycle Controller job collection. Individual jobs can now be read as DellJob resources that expose their state and message and report whether the job has finished and whether it failed, so callers can tell a successful job from a failed one and see why it failed. Previously only the list of unfinished job identities was available; get_unfinished_jobs() keeps its existing behaviour.

Upgrade Notes

  • DellJobCollection.get_unfinished_jobs now returns jobs in any non-terminal state rather than only Scheduled, Running and Paused. Callers using it to decide whether the BMC is busy will see it report busy in more situations, which is the intended and more conservative behaviour. Callers using it to decide whether a specific job has finished will now get a correct answer for staged firmware jobs.

  • sushy.oem.dell.constants.INCOMPLETE_JOB_STATES is deprecated. It is an allowlist of only some of the incomplete job states and cannot be used to determine whether a job has finished. It is retained for backward compatibility but is no longer used internally; use sushy.oem.dell.constants.TERMINAL_JOB_STATES instead.

Bug Fixes

  • Fixes DellJobCollection.get_unfinished_jobs reporting a job as finished while the Lifecycle Controller was still working on it. The method matched an allowlist of three “incomplete” states (Scheduled, Running and Paused), so a job in any other non-terminal state was silently omitted from the result. This notably affected UserIntervention, which iDRAC reports for firmware that has been staged but not yet flashed during POST, and which is not present in this library’s JobState enumeration at all. Callers polling for job completion could conclude that a firmware update had been applied when the flash had not started. The check is now inverted: only the terminal states listed in sushy.oem.dell.constants.TERMINAL_JOB_STATES count as finished, and any state the library does not recognise is treated as unfinished.

  • Fixes Sushy trying to access non-existing /empty URL when PCIe functions are not supported by the BMC. MissingAttributeError is raised instead (as documented).

    The code tries to return an empty collection instead of raising MissingAttributeError as any other accessors. However, it did not work in reality. Instead, out-of-band inspection would fail with ResourceNotFoundError: Resource https://<host>/empty not found.

  • Fixes getting the supported reset types from services that publish them in an ActionInfo resource, referenced by the system reset action’s @Redfish.ActionInfo annotation, instead of annotating them inline. On such systems every reset type was previously assumed to be supported.

  • Postpones Redfish message registries download and processing when accessing task monitors.