Ussuri 系列 (3.0.0 - 3.2.x) 发布说明

3.2.3-3

错误修复

  • 修复了与某些 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 库进行操作将尝试重新进行身份验证(如果可能)。

3.2.3

错误修复

  • 自动重试 GET 请求的内部服务器错误。

3.2.1

安全问题

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

错误修复

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

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

  • 修复了在使用多个服务器时导致加载的 OEM 扩展指向首次加载扩展的服务器的问题。

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

3.2.0

新特性

  • Connector 类添加了可选的 response_callback 参数,该参数可用于让应用程序在运行 Redfish 调用过程中接收原始 HTTP 消息。其目的是为了方便 Redfish 交换调试。

错误修复

  • System 对象中添加了一个新的 set_system_boot_options 方法,取代了 set_system_boot_source 方法。新的方法具有所有可选的启动参数,以允许在 PATCH Redfish Boot 对象时具有更高的原子性。新的方法只会将用户明确传递的项目包含在 PATCH 文档中。此更改可能会提高与某些 BMC 的互操作性,这些 BMC 无法处理 Boot 对象中的某些属性。

  • 将(可能非常大的)Redfish 消息注册表下载和处理推迟到客户端首次访问时。目标是减少不必要的流量和 CPU 周期。

3.1.0

新特性

  • 修改了 get_systemget_managerget_chassis 方法,不再需要引用特定资源实例的 identity 参数。如果省略 identity,sushy 将默认使用唯一可用的资源,只要它是单个且确定的。其目的是简化用户 API,无需要求用户在请求资源之前发现可用资源。

  • 添加了对任务监视资源的支持,以便能够监视异步操作的状态。

错误修复

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

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

  • 处理 MessageRegistry 中缺少诸如“Description”和“Severity”等字段的不完整消息。有关更多信息,请参阅故事 2007216

3.0.0

升级说明

  • 已停止对 Python 2.7 的支持。sushy 支持 Python 2.7 的最后一个版本是 OpenStack Train。sushy 现在支持的 Python 的最低版本是 Python 3.6。