Train Series (1.9.0 - 2.0.x) Release Notes

2.0.0

New Features

  • Exposes the endpoint sub-resource from the fabric resource. endpoint represents the properties of an entity that sends or receives protocol defined messages over a transport.

  • Adds a new field called MappedListField which 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.

  • Exposes UpdateService constants to sushy namespace.

Upgrade Notes

  • 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 OEMExtensionResourceBase class) is not preserved. User OEM code migration would involve switching from OEMExtensionResourceBase to OEMResourceBase (note __init__ call signature change) and replacing OEMField-based classes with their generic sushy Field counterparts.

Bug Fixes

  • 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 sushy we just try not to maintain persistent connections with BMC at all.

  • Makes Manager->Actions field optional as Redfish Manager schema defines it. Otherwise sushy fails hard at parsing response from a Redfish agent that does not include Actions field in its document tree.

  • Fixes bug in UpdateService.simple_update method making it operational.

  • The transfer_protocol parameter of the UpdateService.simple_update method 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.ResetBios when BMC expects the POST request with empty body instead of no body. See story 2006246 for details.

1.9.0

New Features

  • Bios resource introduces update_status property that exposes the status and any errors of last BIOS attribute update.

  • Adds the IndicatorLED property to the Drive resource. The state of the LED can be read and can be changed via the .set_indicator_led() method of the Drive sushy class.

  • 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.

  • Adds CapacityBites, Manufacturer, Model, PartNumber, SerialNumber and Status properties to the Drive resource.

  • The IndicatorLED property of System and Chassis resources 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.

Deprecation Notes

  • Deprecates system-specific indicator LEDs as redundant. The SYSTEM_INDICATOR_LED_LIT, SYSTEM_INDICATOR_LED_BLINKING, SYSTEM_INDICATOR_LED_OFF and SYSTEM_INDICATOR_LED_UNKNOWN constants should not be used. Generic indicator LED constants should be used instead. Those are INDICATOR_LED_LIT, INDICATOR_LED_BLINKING, INDICATOR_LED_OFF and INDICATOR_LED_UNKNOWN respectively.

  • The operation_apply_time_support and maintenance_window properties in the SettingsField class are deprecated. The SettingsField class represents the @Redfish.Settings annotation and those properties cannot appear within this annotation. Instead use the apply_time_settings property in the target resource (e.g. Bios resource).

Other Notes