Wallaby Series (3.5.0 - 3.7.x) Release Notes¶
3.7.6-6¶
Bug Fixes¶
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.
Fixes ‘Unsupported parameter name @Redfish.OperationApplyTime’ error on iDRAC firmware version 6.00.02.00 or newer when deleting volumes.
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.
Correctly handles error code
Base.1.5.PropertyMissing
when dealing with hardware that requiresTransferProtocolType
for virtual media operations.
3.7.6¶
Bug Fixes¶
Fixes potential cases where exceptions from the underlying
requests
library may be raised up throughsushy
, resulting in client applications possibly not understanding that an error has occurred. The sushyConnectionError
exception is now returned upon any exception falling underRequestException
from therequests
library.
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
basic
authentication would not raise an AccessError exception once the credentials stopped working. We now explicitly check to see ifbasic
authentication is in use, and raise the exception if an AccessError is encountered.
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.
3.7.5¶
Bug Fixes¶
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.
3.7.4¶
Bug Fixes¶
Changing boot device string for virtual media from “Cd” to “UsbCd” on SuperMicro machines to match their specific naming convention.
If available, uses headers with an Etag to set the boot options.
Fixes issues with the refresh of
Session
based authentication where a previous refresh attempt failing could result in a fallback toBasic
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 anAccessError
. Should this occur, now theAccessError
exception is explicitly raised as opposed to attempting to fall back toBasic
authentication.
Fixes issues where the
Session
andBasic
auth interface would fallback toBasic
authentication should aConnectionError
exception occur while attempting to perform an authentication action.ConnectionError
exceptions are signs of networking transport issues, and should be investigated. AConnectionError
exception is now raised.
Prevents the combined
Session
andBasic
authentication support from falling back toBasic
authentication onceSession
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 anAccessError
exception. 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.
3.7.3¶
Upgrade Notes¶
“Inserted” and “WriteProtected” optional attributes are no longer present in the InsertMedia API call payload when default values {“Inserted”: True, “WriteProtected”: True} are specified by the consumer (e.g. Ironic) and PATCH method of configuring virtual media is not used. Behaviour is unchanged if PATCH method is used.
Bug Fixes¶
Removing “Inserted” and “WriteProtected” parameters from the Redfish VirtualMedia::insert_media() API call payload when default values {“Inserted”: True, “WriteProtected”: True} are set and PATCH method is not used. Those parameters are optional as per Redfish schema 2021.1. Some BMCs (e.g. SuperMicro X11/X12 platforms) treat these fields as read-only and setting them causes vMedia insert failures. These attributes should default to True on the BMC side. Some BMCs using PATCH method of configuring virtual media (e.g. Lenovo SD530) still require “Inserted” attribute, so only changing this for non-PATCH methods of configuring virtual media such as InsertMedia action.
Fixes
Processor.sub_processors
for “‘Processor’ object has no attribute ‘conn’” error.
3.7.1¶
Bug Fixes¶
Adds a fallback for inserting and ejecting virtual media using the PATCH HTTP request instead of the explicit action URIs. The fallback is required for Lenovo ThinkSystem machines (i.e. SD530, ..) that only implement the PATCH method.
3.7.0¶
New Features¶
Adds new method
get_task_monitor
to retrieve TaskMonitor instance by task monitor URI.
Adds support for fetching and resetting individual UEFI secure boot databases.
Deprecation Notes¶
Existing two
TaskMonitor
-s are deprecated and replaced with onetaskmonitor.TaskMonitor
.For
resources.task_monitor.TaskMonitor
users changes include:in_progress
is replaced with methodcheck_is_processing
location_header
is replaced with methodtask_monitor_uri
there is no replacement for
set_retry_after
,taskmonitor.TaskMonitor
sets this internally from Retry-After header
For
resources.taskservice.taskmonitor.TaskMonitor
users changes include:check_is_processing
,sleep_for
and staticget_task_monitor
added.in
__init__
parameterfield_data
is deprecated, useresponse
in
__init__
parametertask_monitor
is renamed totask_monitor_uri
task_monitor
is deprecated, usetask_monitor_uri
retry_after
is deprecated, usesleep_for
Methods
create_volume
,delete_volume
,initialize_volume
in volume module are deprecated and replaced with ones namedcreate
,delete
andinitialize
. New methods for asynchronous operations returntaskmonitor.TaskMonitor
instead of deprecatedresources.task_monitor.TaskMonitor
.Method
resources.updateservice.UpdateService.get_task_monitor
is deprecated, useSushy.get_task_monitor
instead.
Bug Fixes¶
Automatically retries internal server errors from GET requests.
3.6.1¶
Bug Fixes¶
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 issues in the
volume
module where the first parameter passed to theTaskMonitor
constructor was incorrect. The parameter passed was the resource object (self), but it should have been the connector object (self._conn). This affected thecreate_volume()
anddelete_volume()
methods.
3.6.0¶
New Features¶
Adds initial support for the TaskService resource to the library. TaskService is responsible for managing tasks.
Update the
create_volume
method in theVolumeCollection
class and thedelete_volume
andinitialize_volume
methods in theVolume
class to take optionalapply_time
andtimeout
keyword parameters. This allows the caller of those volume methods to specify a preferredOperationApplyTime
annotation and a maximum timeout for synchronous operations. For asynchronous operations, those three methods will now return aTaskMonitor
instance that the caller can use to monitor the state of the task.
Adding a new attribute task_uri to monitor redfish firmware update since some vendors(ilo) does not provide appropriate response with task_monitor uri.
Adds support for UEFI secure boot: reading the current status, enabling or disabling secure boot, resetting keys.
Deprecation Notes¶
The
supported_values
property in theOperationApplyTimeSupportField
class is deprecated. Use themapped_supported_values
property instead. Themapped_supported_values
property uses theMappedListField
type to map the Redfish schema-defined enumeration values to constants exposed by the Sushy package.
Bug Fixes¶
Fixes an issue in the
Connector
class where an exception is not raised when an asynchronous operations fails.
3.5.0¶
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 2.75.75.75. See story 2008198 for details.
The
Actions
field in theVolume
resource was incorrectly specified as being required. This fix makes the field optional.
Makes message parsing more resilient by handling the case where the message ID only contains a message key and no registry name. In this case, fall back to the
Messages
message registry file and then to theBaseMessages
message registry file. If the message ID cannot be found, then set the message tounknown
. When parsing messages, if not enough arguments were supplied, then fill in the remaining arguments withunknown
.
Reduce the logging from sushy by logging only attributes and values set in the redfish response, not the entire json.