Current Series Release Notes


New Features

  • Adds basic support for virtual media devices on non-IDE buses, such as SATA and SCSI, as IDE devices are not supported on Q35 libvirt domains.


Known Issues

  • Reads hardware state from libvirt domain XML

    Now reads boot device/mode/image from domain XML on filesystem rather then the running VM, thus avoiding the need for a reboot after setting soemthing. The client should now power cycle the instance if the changes are required in the running VM. note: not simply a soft reboot.


Upgrade Notes

  • Python 2.7 support has been dropped. Last release of sushy-tools to support Python 2.7 is OpenStack Train. The minimum version of Python now supported by sushy-tools is Python 3.6.

Bug Fixes

  • Fixes one of the allowed values for BootSourceOverrideMode element - Redfish specification requires UEFI boot mode to be indicated as UEFI, not Uefi as the dynamic Redfish emulator erroneously adopted.

  • Fixes occasional failure when setting boot image to libvirt domain in response to virtual media “Insert” operation.

  • Fixes potential failure on reading/setting boot device of libvirt domain. Prior to this fix, boot device has only been respected in the boot loader part of libvirt domain XML. However per-device boot configuration can also be used. If the latter way is in place in a libvirt domain, reading boot device would yield nothing, while setting it in the boot loader would fail. This fix respects both ways of configuring libvirt boot device preferring the per-device configuration when setting new boot device.

  • Brings libvirt domain down prior to any change. When Redfish emulator is running against libvirt virtualization backend, any changes being done to domain are not applied for as long as the domain is up. This leads to two nuisances:

    • REST API is not really REST-ful meaning that successfully applied change is not reflected in the document tree

    • Multiple changes done to live domain XML tree may override one another because N-1 change done to a domain is not visible to N’s change

    The fix is to bring running domain down briefly while the change is applied.

  • Fixes situation when changing boot image could invalidate current boot device selection. The fix is to note current libvirt boot device and restore it if the image being changed resides on the active boot device.

  • Fixes defaults to storage and drive resources. Prior to this fix, if storage and/or drive resource emulation is not set up via sushy emulator configuration, the clients trying to read either of these resources would hit hard HTTP 500 response.


New Features

  • Adds Chassis resource emulation to dynamic Redfish emulator. All emulated Computer Systems and Managers get linked up to the first of the configured Chassis (just one by default).

  • Adds Drive resource support to the dynamic Redfish emulator based on static user configuration.

  • Adds generic Indicator LED resource emulation based on static user configuration. Adds IndicatorLED property to Chassis and System resources.

  • Adds Managers resource emulation to dynamic Redfish emulator. Emulated Computer Systems link up automatically to the first of the configured Managers (just one by default).

  • Adds emulation support for Simple Storage resource to libvirt virtualization backend of the dynamic Redfish emulator. The emulation functionality assumes that the storage devices attached to a VM are configured as a libvirt Volume via a storage pool. Devices not configured as a Volume will not be considered for emulation purposes.

  • Adds Storage and Storage Controllers resource support to the dynamic Redfish emulator based on static user configuration.

  • Adds basic Thermal resource emulation under Chassis resource. The Thermal resource is not user-configurable, its contents is mostly static and depends on Jinja2 template. All references between resources are dynamically rendered though.

  • Adds Virtual Media resource.

    As of this release, user can configure a collection of virtual media devices including their types, names and other properies. By default, cdrom and floppy devices are configured.

    Each Manager automatically gets its own instance of the above mentioned virtual media device collection. HTTP/S-hosted images can be inserted into and ejected from virtual media devices.

    If libvirt virtualization backend is being used, once ISO image is inserted into the respective Manager, any System under that Manager can boot from that image by booting from its local cdrom over UEFI.

    The ISO images must be UEFI-bootable or hybrid.

  • Adds Volume resource emulation support.

    As of this release, a user can configure a collection of Volumes including the VolumeType and Capacity. The configured volumes will appear as libvirt volumes in the libvirt virtualization backend of the dynamic Redfish emulator (provided the libvirt pool specified for the volume exists).

    Volume creation via POST request is also supported.

    In case the Openstack backend is used, the NotSupportedError is raised.

Bug Fixes

  • Fixes Flask config file load as pointed by the SUSHY_EMULATOR_CONFIG environment variable when running under WSGI server. Before this fix, the above mentioned environment variable was ignored and user config file not loaded.


Bug Fixes

  • Fixes libvirt domains listing so that both active and inactive domains are rendered as available Systems resource. Before this fix, only inactive domains were listed.

  • Changed HTTP redirect code from 302 to 307 to ensure the original HTTP method is left intact. Otherwise some clients may change PUT/POST to GET on redirect and effectively fail to perform the change they intended.