2023.1 Series 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 TransferProtocolType for any general error that mentions it
In some cases registries might not be available because the our check for the registry language did not account for a possible country suffix. The logic was improved to take it into account.
An issue was encountered on some HPE iLO supported machines where the Baseboard Management Controller would respond with a HTTP 400 error and an error message indicating the requested operation was invalid for the then system state. For example, attempting to change the power state via the BMC shortly after previously changing the power state. We now attempt to retry within the permitted number of retries when this error is encountered.
Fixes exceeding retries. Before this fix running sushy for longer it no longer retried for temporary failures when it should.
Fixes ‘Unsupported parameter name @Redfish.OperationApplyTime’ error on iDRAC firmware version 6.00.02.00 or newer when deleting volumes.
Workaround for https://github.com/psf/requests/issues/3829 If the env
REQUESTS_CA_BUNDLEis set the
requests.Session()ignores the verify parameter. Therefore the verify parameter is moved directly into the function call of requests.
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.
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.
Correctly handles error code
Base.1.5.PropertyMissingwhen dealing with hardware that requires
TransferProtocolTypefor virtual media operations.
Adds two new configuration options:
server_side_retriesallows to set a custom value for the number of times we should retry a GET request in case of a server error, defaults to 10;
server_side_retries_delayallows to customize the time in seconds between the request retries, defaults to 3.
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.