Train 系列 (1.9.0 - 2.0.x) 发行说明

2.0.5-8

错误修复

  • 修复了与某些 BMC 的 ETag 交互中不可靠的行为,因为机会性地使用压缩响应可能会导致 BMC 将 ETag 响应更改为“Weak”,这是可以预期的,因为 ETag 代表绝对的字节对字节响应一致性,而压缩无法可靠地保证该协议。引入客户端感知“Weak” ETag 可能不被服务器期望,并且服务器可能会拒绝响应,因为 ETag 在我们响应或与资源交互时不是“Strong” ETag。

    因此,请求不再提供响应压缩作为可接受的可能性,这总体影响很小,尤其与保持一致的 BMC 行为和交互的价值相比。

  • 修复了基于 Session 的身份验证刷新出现的问题,之前的刷新尝试失败可能导致回退到 Basic 身份验证并会静默失败。客户端库现在尝试重新进行身份验证。

  • 修复了当基于 Session 的身份验证刷新失败,并且由于 AccessError 无法重新建立时出现的静默失败问题。如果发生这种情况,现在将显式引发 AccessError 异常,而不是尝试回退到 Basic 身份验证。

  • 修复了在尝试执行身份验证操作时发生 ConnectionError 异常时,组合的 SessionBasic 身份验证支持回退到 Basic 身份验证的问题。 ConnectionError 异常表明网络传输问题,应进行调查。现在将引发 ConnectionError 异常。

  • 防止组合的 SessionBasic 身份验证支持在建立基于 Session 的身份验证后回退到 Basic 身份验证。这应被视为潜在的安全问题或需要潜在客户端重新初始化的环境更改。这被公开为 AccessError 异常。继续对 Sushy 库进行操作将尝试重新进行身份验证(如果可能)。

2.0.5

错误修复

  • 修复了在错误处理期间出现的 AttributeError: 'str' object has no attribute 'get'。当 BMC 未在 @Message.ExtendedInfo 中返回消息列表,而是返回单个项目时,会发生这种情况。这在使用 iDRAC 时已观察到。

2.0.4

安全问题

  • 在使用 SessionService 进行身份验证时,不再在 DEBUG 模式下记录密码和身份验证令牌。

错误修复

  • 修复了在执行操作 #Bios.ResetBios 时,POST 请求中未提供正文,且 BMC 响应 HTTP 400 Bad Request 的问题,例如,Dell R630 具有 iDRAC 2.75.75.75。有关详细信息,请参阅 故事 2008198

  • 与其尝试 GET /redfish/v1/SessionService,该服务通常需要通过身份验证才能访问,然后失败,并猜测 /redfish/v1/SessionService/Sessions 作为会话 URL,不如首先尝试直接使用根服务提供的会话 URL(如果可用)。

2.0.3

错误修复

  • 修复了在使用多个服务器时 Sushy OEM 扩展加载的问题,该问题导致加载的扩展指向加载扩展的第一个服务器。

2.0.2

错误修复

  • 处理 MessageRegistry 中缺少诸如“Description”(描述)和“Severity”(严重性)等字段的不完整消息。有关更多信息,请参阅 story 2007216

2.0.1

错误修复

  • 修复了 SimpleStorageCollection.disks_sizes_bytes 中的错误,该错误假定磁盘的 CapacityBytes 属性的类型为 integer。根据分布式管理任务组 (DMTF) Redfish 标准模式 [1],它可以为 null,这在 Python 中转换为 None。有关更多信息,请参阅 故事 2006918

    [1] https://redfish.dmtf.org/schemas/SimpleStorage.v1_2_3.json

2.0.0

新特性

  • fabric 资源公开 endpoint 子资源。endpoint 代表通过传输发送或接收定义协议消息的实体的属性。

  • 添加了一个名为 MappedListField 的新字段,该字段支持映射的实例列表。

  • 添加了根据收到的 JSON 对象有条件匹配 sushy 字段的功能。条件匹配由用户提供的可调用对象执行,该对象获取要考虑的键(以及值和潜在的其他详细信息),并应指示调用者是否发生匹配。此更改的动机是为了适应 OEM 荒野中观察到的格式错误的 Redfish 资源属性。

  • 更新存储、卷和驱动器模型以支持 RAID 配置管理。

  • UpdateService 常量暴露到 sushy 命名空间。

升级说明

  • OEM 资源类层次结构已重新设计,以允许处理非终端子资源(例如 Links)在 OEM 资源模型中。因此,与先前存在的 OEM 扩展框架(任何基于 OEMExtensionResourceBase 类)的向后兼容性未保留。用户 OEM 代码迁移涉及从 OEMExtensionResourceBase 切换到 OEMResourceBase(注意 __init__ 调用签名更改)并用通用的 sushy Field 类替换基于 OEMField 的类。

错误修复

  • 通过在传出的 Redfish 请求中包含推荐的 OData-Version 标头来提高互操作性。

  • 禁用 HTTP 连接池,通过要求 HTTP 服务器在我们使用连接后立即关闭它来实现。原因是,在实际环境中观察到一些 BMC 似乎会在最终重新使用时突然关闭持久连接,导致完全不相关的操作失败。因此,在 sushy 中,我们只是尝试不要与 BMC 维护持久连接。

  • 使 Manager->Actions 字段可选,因为 Redfish Manager 模式定义了它。否则,sushy 在解析不包含 Actions 字段在其文档树中的 Redfish 代理的响应时会发生严重错误。

  • 修复了 UpdateService.simple_update 方法中的错误,使其正常运行。

  • UpdateService.simple_update 方法的 transfer_protocol 参数应给出新暴露的常量之一,而不是字符串字面量。这是一个破坏性更改。

  • 修复了在执行操作 #Bios.ResetBios 时的问题,当时 BMC 期望带有空正文的 POST 请求,而不是没有正文。有关详细信息,请参阅 story 2006246

1.9.0

新功能

  • Bios 资源引入了 update_status 属性,该属性公开了上次 BIOS 属性更新的状态和任何错误。

  • Drive 资源添加了 IndicatorLED 属性。LED 的状态可以读取,并且可以通过 Drive sushy 类的 .set_indicator_led() 方法进行更改。

  • 向库中添加了 Fabric 资源的支持。

  • 向库中添加了 Power 资源。

  • 添加了 System 资源中 System Type 的可能值的映射和常量。这代表计算机系统的类型。

  • 向库中添加了 Thermal 资源。

  • Drive 资源添加了 CapacityBitesManufacturerModelPartNumberSerialNumberStatus 属性。

  • 通过引入各自 sushy 类的 .set_indicator_led() 方法,使 SystemChassis 资源的 IndicatorLED 属性可设置。

  • 更新 sushy 模型以支持 Redfish SettingsApplyTime 和 OperationApplyTimeSupport 注释。

弃用说明

  • 弃用系统特定的指示 LED,因为它们是冗余的。SYSTEM_INDICATOR_LED_LITSYSTEM_INDICATOR_LED_BLINKINGSYSTEM_INDICATOR_LED_OFFSYSTEM_INDICATOR_LED_UNKNOWN 常量不应使用。应使用通用的指示 LED 常量。那些是 INDICATOR_LED_LITINDICATOR_LED_BLINKINGINDICATOR_LED_OFFINDICATOR_LED_UNKNOWN 分别。

  • SettingsField 类中的 operation_apply_time_supportmaintenance_window 属性已弃用。SettingsField 类代表 @Redfish.Settings 注释,这些属性不能出现在此注释中。相反,请在目标资源(例如 Bios 资源)中使用 apply_time_settings 属性。

其他说明