Yoga Series (4.0.0 - 4.1.x) Release Notes¶
Fixes bug where sushy would not pass a read/connect timeout through to requests when making requests to a redfish service. This means that an ill-timed failure could cause python processes calling sushy to freeze indefinately.
Add retries on iDRAC error with code SYS518 and message “iDRAC is currently unable to display any information because data sources are unavailable.” for all request types in addition to existing GET methods. This helps to fix a known intermittent issue when deleting set of volumes one after another and iDRAC is reloading after deleting each volume.
Fixes ‘Unsupported parameter name @Redfish.OperationApplyTime’ error on iDRAC firmware version 6.00.02.00 or newer when deleting volumes.
Correctly handles error code
Base.1.5.PropertyMissingwhen dealing with hardware that requires
TransferProtocolTypefor virtual media operations.
Adds an extra check for cases where the BMC provides a SettingsObject URI through @Redfish.Settings but this URI does not allow setting boot related attributes. Prior to sending a PATCH request to SettingsURI, a GET request is issued to verify if it contains the attributes to be updated. In case these attributes are missing, the request is made against System URI instead. Issues such as the one addressed with this change usually manifest themselves with a Redfish response containing an error message similar to the following:
MessageId: Base.1.8.PropertyNotWritable, Message: The property BootSourceOverrideEnabled is a read only property and cannot be assigned a value.
To avoid timeouts with recent versions of firmwares we need to increase the number of server side retries. For example, in idrac firmware series 5.x the time gap between operations is almost 20 seconds instead of the 10 seconds in the 4.x series.
Alters eTag handling in PATCH requests: First, the original eTag is used. In case of a failure, if the eTag provided was weak, it is converted to a strong format by removing the weak prefix. If this approach is not applicable or fails, the final attempt is made omitting the eTag entirely. By taking this approach, no workarounds are applied if BMC is handling eTags as expected and in case of failures, known workarounds are attempted, improving overall resiliency.
Fixes potential cases where exceptions from the underlying
requestslibrary may be raised up through
sushy, resulting in client applications possibly not understanding that an error has occurred. The sushy
ConnectionErrorexception is now returned upon any exception falling under
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 an issue in the sushy connector object handling where a Sushy client utilizing
basicauthentication would not raise an AccessError exception once the credentials stopped working. We now explicitly check to see if
basicauthentication is in use, and raise the exception if an AccessError is encountered.
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.
Resolved virtualmedia attach failures caused by the lack of TransferProtocolType parameter in the request payload which is required by certain BMCs (e.g. on Nokia servers). This is done by adding capability to retry virtualmedia InsertMedia with the updated payload in such cases.
Fixes incompatibility with BMCs that require use of a specific SettingsObject URI specified in @Redfish.Settings resource in order to set BootSourceOverride or similar attributes. For example, this is required on Nokia servers.
Adds support for creating and deleting virtual media TLS certificates.
Makes the unstripped version of an Etag available in addition to the stripped one in order to support vendor implementations which require one or the other.
If available, uses headers with an Etag to set the boot options.
MessageRegistryobjects are no longer logged.
Sushy now exposes Python enums instead of simple string constants. Please check the upgrade notes before updating to this version.
Revisionproperty to the
Adds support for the NetworkAdapter resource to the library.
Adds support for the NetworkDeviceFunction and NetworkPort resource to the library.
Adds basic support for
Allows reading and changing the virtual media fields
Allows reading the virtual media field
Python enumerations are now used instead of strings for all Sushy constants. The old names are kept but now point to enumerated values, so e.g.
sushy.POWER_STATE_ONis an alias for
sushy.PowerState.ON. Consumers of the library may see breakages in two cases:
Relying on literal values of the old constants. Use constants instead.
Relying on the fact that Sushy constants are strings (e.g. storing them in a database). You can either use the
valueattribute to get the underlying string or create your own mapping.
The old constant names (not based on enumerations) are now deprecated. For example, use
resources.taskservice.taskmonitor.TaskMonitorthat were deprecated in Wallaby are now removed. Use
initialize_volumein volume module that were deprecated in Wallaby are now removed. Use
Changing boot device string for virtual media from “Cd” to “UsbCd” on SuperMicro machines to match their specific naming convention.