Train Series (1.9.0 - 2.0.x) Release Notes¶
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
Sessionbased authentication where a previous refresh attempt failing could result in a fallback to
Basicauthentication and would silently fail. The client library now attempts to re-authenticate.
Fixes silent failures when a refresh of an authentication
Sessionfails and was unable to be re-established due to an
AccessError. Should this occur, now the
AccessErrorexception is explicitly raised as opposed to attempting to fall back to
Fixes issues where the
Basicauth interface would fallback to
Basicauthentication should a
ConnectionErrorexception occur while attempting to perform an authentication action.
ConnectionErrorexceptions are signs of networking transport issues, and should be investigated. A
ConnectionErrorexception is now raised.
Prevents the combined
Basicauthentication support from falling back to
Sessionbased 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
AccessErrorexception. Continued operations against the Sushy library will attempt to reauthenticate, if possible.
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.
No longer logs passwords and auth tokens in DEBUG mode when using SessionService for authentication.
Fixes an issue in performing action
#Bios.ResetBioswhen no body in POST request provided and BMC responds with HTTP 400 Bad request, for example, Dell R630 having iDRAC 126.96.36.199. See story 2008198 for details.
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.
Fixes Sushy OEM extension loading when using multiple servers that caused loaded extensions to point to server for which the extension was loaded first.
Handles incomplete messages in MessageRegistry that are not having fields like ‘Description’ and ‘Severity’. See story 2007216 for more information.
Fixes bug in
SimpleStorageCollection.disks_sizes_byteswhich assumed the type of a disk’s
integer. According to the Distributed Management Task Force (DMTF) Redfish standard schema , it can be
null, which is converted to
Nonein Python. For more information, see story 2006918.
endpointsub-resource from the
endpointrepresents the properties of an entity that sends or receives protocol defined messages over a transport.
Adds a new field called
MappedListFieldwhich supports a list of mapped instances.
Adds the ability to conditionally match sushy fields against received JSON object. The conditional matching is performed by a user-supplied callable which gets the key to consider (along with the value and potentially other details) and should indicate the the caller if the match occurred. The motivation behind this change is to accommodate malformed Redfish resource properties as observed in the OEM wilderness.
Update the Storage, Volume, and Drive models to support RAID configuration management.
OEM resource class hierarchy has been redesigned to allow for non-terminal sub-resources (e.g. Links) to be handled within OEM resource model. As a consequence, backward compatibility with previously existing OEM extension framework (anything based on
OEMExtensionResourceBaseclass) is not preserved. User OEM code migration would involve switching from
__init__call signature change) and replacing
OEMField-based classes with their generic sushy
Improve interoperability by including the recommended OData-Version header in outgoing Redfish requests.
Disable HTTP connection pooling by asking HTTP server to close our connection right upon use. The rationale is that some BMC observed in the wild seem to close persistent connections abruptly upon eventual re-use failing completely unrelated operation. So in
sushywe just try not to maintain persistent connections with BMC at all.
Manager->Actionsfield optional as Redfish Manager schema defines it. Otherwise sushy fails hard at parsing response from a Redfish agent that does not include
Actionsfield in its document tree.
Fixes bug in
UpdateService.simple_updatemethod making it operational.
transfer_protocolparameter of the
UpdateService.simple_updatemethod should be given one of the newly exposed constants rather than a string literal. This is a breaking change.
Fixes an issue in performing action
#Bios.ResetBioswhen BMC expects the POST request with empty body instead of no body. See story 2006246 for details.
update_statusproperty that exposes the status and any errors of last BIOS attribute update.
IndicatorLEDproperty to the
Driveresource. The state of the LED can be read and can be changed via the
.set_indicator_led()method of the
Adds support for the Fabric resource to the library.
Adds the Power resource to the Library.
Adds mappings and constants for possible values of System Type in System resource. This represents the type of the computer system.
Adds the Thermal resource to the Library.
Statusproperties to the
Chassisresources made settable with the introduction of the
.set_indicator_led()method to the respective sushy classes.
Update sushy models to support the Redfish SettingsApplyTime and OperationApplyTimeSupport annotations.
Deprecates system-specific indicator LEDs as redundant. The
SYSTEM_INDICATOR_LED_UNKNOWNconstants should not be used. Generic indicator LED constants should be used instead. Those are
maintenance_windowproperties in the
SettingsFieldclass are deprecated. The
SettingsFieldclass represents the
@Redfish.Settingsannotation and those properties cannot appear within this annotation. Instead use the
apply_time_settingsproperty in the target resource (e.g.
Includes Redfish standard message registry files that are licensed under Creative Commons Attribution 4.0 License: https://creativecommons.org/licenses/by/4.0/