Ussuri Series (3.0.0 - 3.2.x) Release Notes


Bug Fixes

  • Fixes unreliable behavior with ETag interactions with some BMCs as opportunistic use of compressed responses may cause the BMC to change an ETag response to “Weak”, which is to be expected as an ETag represents an absolute byte-by-byte response consistency, and compression cannot reliably honor that contract. Introduction of a client perceiving a “Weak” ETag may not be expected by the server, and the server may reject responses because the ETag is not a “Strong” ETag when we respond or interact with a resource.

    As a result, requests no longer offer oppurtunistic compression of responses as an acceptable possibility, which overall has minimal impact, espescially when compared to the value of consistent BMC behavior and interaction.

  • Fixes issues with the refresh of Session based authentication where a previous refresh attempt failing could result in a fallback to Basic authentication and would silently fail. The client library now attempts to re-authenticate.

  • Fixes silent failures when a refresh of an authentication Session fails and was unable to be re-established due to an AccessError. Should this occur, now the AccessError exception is explicitly raised as opposed to attempting to fall back to Basic authentication.

  • Fixes issues where the Session and Basic auth interface would fallback to Basic authentication should a ConnectionError exception occur while attempting to perform an authentication action. ConnectionError exceptions are signs of networking transport issues, and should be investigated. A ConnectionError exception is now raised.

  • Prevents the combined Session and Basic authentication support from falling back to Basic authentication once Session based authentication has been established. This should be considered a potential security issue or an environmental change requiring potential client re-initialization. This is exposed as an AccessError exception. Continued operations against the Sushy library will attempt to reauthenticate, if possible.


Bug Fixes

  • Automatically retries internal server errors from GET requests.


Security Issues

  • No longer logs passwords and auth tokens in DEBUG mode when using SessionService for authentication.

Bug Fixes

  • Fixes an issue in performing action #Bios.ResetBios when no body in POST request provided and BMC responds with HTTP 400 Bad request, for example, Dell R630 having iDRAC See story 2008198 for details.

  • Fixes AttributeError: 'str' object has no attribute 'get' during error handling. This occurs when BMC does not return a list of messages inside @Message.ExtendedInfo, but a single item. This has been observed with iDRAC.

  • Fixes Sushy OEM extension loading when using multiple servers that caused loaded extensions to point to server for which the extension was loaded first.

  • Instead of trying to GET /redfish/v1/SessionService, which is usually reachable via authentication, fail, and then guess /redfish/v1/SessionService/Sessions as Sessions URL, we try first to use directly the Sessions URL provided by the root service, if available.


New Features

  • Adds optional response_callback parameter to Connector class that can be used by the application to receive vanilla HTTP messages in the course of running Redfish call. The intention is to facilitate Redfish exchange debugging.

Bug Fixes

  • Adds a new set_system_boot_options method to the System object superseding the set_system_boot_source method. The new method has all boot parameters optional to allow for more atomicity when PATCH’ing Redfish Boot object. The new method will only include those items in the PATCH document, that are explicitly passed by the user. This change might improve interoperability with BMCs that do not handle certain attributes of the Boot object.

  • Postpones (potentially very large) Redfish message registries download and processing up to the first access by the client. The goal is to reduce the amount of unnecessary traffic and CPU cycles.


New Features

  • The get_system, get_manager and get_chassis methods modified not to require the identity parameter referring to a particular resource instance. If identity is omited, sushy will default to the only available resource for as long as it’s single and therefore deterministic. The intent is to simplify user API by not requiring the consumer to discover available resources prior to requesting one.

  • Add support for a Task Monitor resource to be able to monitor the state of asynchronous operations.

Bug Fixes

  • Fixes bug in SimpleStorageCollection.disks_sizes_bytes which assumed the type of a disk’s CapacityBytes property is integer. According to the Distributed Management Task Force (DMTF) Redfish standard schema [1], it can be null, which is converted to None in Python. For more information, see story 2006918.


  • Handles incomplete messages in MessageRegistry that are not having fields like ‘Description’ and ‘Severity’. See story 2007216 for more information.


Upgrade Notes

  • Python 2.7 support has been dropped. Last release of sushy to support Python 2.7 is OpenStack Train. The minimum version of Python now supported by sushy is Python 3.6.