Current Series Release Notes¶
1.3.0-6¶
Upgrade Notes¶
Support for Python 3.8 has been removed. Now the minimum python version supported is 3.9 .
1.3.0¶
New Features¶
Support for domains utilizing firmware auto-selection has been added to the libvirt driver.
Adds support for BIOS update emulation by introducing UpdateService. No actual updates are performed (all the code is doing is incrementing BIOS version value in libvirt xml) however this functionality may be used for automated testing of firmware update features in Ironic. Note BMC firmware update emulation is not supported at this time.
The openstack driver now supports insert and eject of virtual media. On insert a new empty volume is created and attached to the server and the server is rebuilt with the that image. On eject it is assumed that the attached volume has been rewritten with bootable image data. The volume is detached and uploaded as an image, then the server is rebuilt with that image.
Both insert and delete results in the root disk being wiped and replaced with the contents of an image, so this should not be used in any scenario where the root disk data needs to be retained.
Bug Fixes¶
Replaces hardcoded BIOS version string with updatable field backed by a custom section in libvirt metadata (similar to prior art on BIOS settings). This can be used for BIOS version information as well as storing firmware version information of other components. NOTE: this enhancement is meant to facilitate testing BIOS/firmware upgrade codepaths and NOT performing actual BIOS/firmware upgrades.
Resolves the issue where UpdateService.SimpleUpdate action cannot complete successfully due to connections from UpdateService to System being redirected by libvirt system driver alias handling code.
1.1.0¶
New Features¶
Adds support to handle
HttpBootUri
being posted to the node, which maps to the virtual media functionality, because there is not a direct analog setting when interacting with libvirt.
Adds basic functionality for
HttpBootUri
to be passed through to the libvirt driver, enabling boot operations utilizing supplied media. This does not influence the default URL to boot from due to a lack of capability in libvirt, but instead treats it similar to virtual media. In this case, an override boot target ofUefiHttp
is also re-mapped toCd
to facilitate testing.
Adds new ironic driver to provide a limited emulated redfish API to ironic nodes. This would be needed in cases where a redfish compatible endpoint is needed but but don’t have direct access to the BMC (you only have access via Ironic) or the BMC doesn’t support redfish.
Add a configuration options
SUSHY_EMULATOR_FEATURE_SET
to define which resources should be available. See the documentation for more details.
Exposes the VirtualMedia resource directly on Systems, not just Managers.
1.0.0¶
New Features¶
It is now possible to enable and disable UEFI Secure Boot mode via Redfish requests for the libvirt driver. This is possible by configuring domains to use a secure boot capable firmware loader, and setting configuration values SUSHY_EMULATOR_SECURE_BOOT_ENABLED_NVRAM and SUSHY_EMULATOR_SECURE_BOOT_DISABLED_NVRAM to nvram template paths which enable or disable secure boot.
The fake driver supports getting and setting secure boot, the nova driver only supports getting.
Bug Fixes¶
Fixes
libvirtError: operation forbidden
when setting boot mode
0.21.1¶
Security Issues¶
Secure information in the Libvirt domain XML document is now preserved. For more information, please see story 2010382.
Bug Fixes¶
Fixes an issue where secure fields were accidentally lost in the Libvirt domain XML document.
0.20.0¶
Upgrade Notes¶
Sushy-tools does not support Python 3.6 and 3.7 anymore, please use version 3.8 or higher.
0.19.0¶
New Features¶
Adds basic support for custom TLS certificates with virtual media.
Adds a fake system driver (activated using the
--fake
argument) that does not have an actual backend and works by storing all values in the cache.It is currently functional enough for the Ironic’s
ramdisk
deploy (and undeploy) to finish successfully.
Bug Fixes¶
Allow non-string types to be configured for BIOS settings.
0.18.2¶
Bug Fixes¶
Fixes configuring the emulator via environment parameters when
main
is not invoked (e.g. when using WSGI).
0.18.1¶
Bug Fixes¶
Fixes authentication when the configuration is provided via the
--config
option (as opposed to the environment).
0.18.0¶
New Features¶
Supports HTTP basic authentication of Redfish endpoints. Set the new
SUSHY_EMULATOR_AUTH_FILE
variable to the path of an htpasswd file.
Supports reading and changing
VerifyCertificate
inVirtualMedia
resources.
The emulator now supports providing
UserName
andPassword
for virtual media.
Upgrade Notes¶
The default value of
SUSHY_EMULATOR_VMEDIA_VERIFY_SSL
has been changed toFalse
to match the actual bare metal hardware.
Bug Fixes¶
Fixes a bug in the handler for Bios/BiosRegistry - it should not include identity in order to match the url returned from bios_attribute_registry_file.json and be consistent with actual vendor responses.
Returns the correct status code (404) when a URL is not found.
Fixes handling HTTP errors on downloading virtual media files. Error codes are no longer silently ignored.
0.17.0¶
New Features¶
Adds support for returning message and attribute (particularly BIOS attribute) registries. Also adds two additional BIOS settings - ‘SecureBootStatus’ and ‘SerialNumber’. ‘SecureBootStatus’ has ‘ReadOnly’ set to true and ‘SecureBootStatus’ has ‘IsSystemUniqueProperty’ in the registry.
0.14.0¶
New Features¶
Adds basic support for Redfish Processor schema.
Bug Fixes¶
Fixes incorrect device name and bus when attaching a virtual floppy.
0.13.0¶
New Features¶
Adds an option –debug to enable debug mode when running sushy-emulator.
0.12.1¶
Bug Fixes¶
Adds the
Volumes
navigation property to theStorage
emulator template.
No longer tries to use IDE controllers on q35 machines.
0.11.0¶
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.
0.10.0¶
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 something. The client should now power cycle the instance if the changes are required in the running VM. note: not simply a soft reboot.
0.8.0¶
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 asUEFI
, notUefi
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.
0.7.0¶
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. TheThermal
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 properties. By default,
cdrom
andfloppy
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.
0.6.0¶
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.