We enthusiastically announce the release of: sushy-tools 0.7.0: A set of tools to support the development and test of the Sushy library (https://docs.openstack.org/sushy/) The source is available from: https://opendev.org/openstack/sushy-tools Download the package from: https://tarballs.openstack.org/sushy-tools/ For more details, please see below. 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. 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. Changes in sushy-tools 0.6.0..0.7.0 ----------------------------------- 794ca7f Store virtual media device changes persistently 9210bf3 Remove obsolete limitation from the doc fa70fbc Add Volume resource support 0812b1e Build pdf doc f188311 Add Drive resource support 5491098 Add Storage and Storage Controllers resource support 7460b15 Fix non-functional driver configuration on Py2 a0e3057 Do not reuse sqlite connection 43f3347 Add missing six and requests requirements 11c7511 Fix TypeError for Indicators resource 857a02c Follow-up fixes 69cfa3a Add Simple Storage resource support 578f058 Add Thermal resource emulation 9e0eaf4 Add `get/set_boot_image` to libvirt driver e1c844d Add Virtual Media support 155fed1 Add Indicator LED resource emulation b4cba95 Add state sharing and persistence mechanism 248e3d1 Add Chassis resource support f1ae236 Add Managers resource support e034afc add local bindep.txt 157b396 Simplify resource initialization c0cd954 Update Python 3 test runtimes for Train f206d8c Rename `drivers` to `resources/systems` 255e376 Add contributor docs on running sushy-tools locally 1edffef Adds `Name` field to `System` resource response Diffstat (except docs and test files) ------------------------------------- bindep.txt | 2 + lower-constraints.txt | 2 +- .../add-chassis-resource-aab57e319e6c7088.yaml | 6 + .../notes/add-drive-resource-a827e136600071f3.yaml | 5 + ...dd-indicator-led-resource-672255319e6c3421.yaml | 6 + .../add-managers-resource-ffa58e329eccc058.yaml | 6 + ...d-simple-storage-resource-200e78d78c6aa8df.yaml | 8 + .../add-storage-resource-52bf30f50dd7b0a1.yaml | 5 + .../add-thermal-resource-8623543795643123.yaml | 7 + .../notes/add-virtual-media-4a137a5fb5017031.yaml | 19 + .../add-volume-resource-db795af928e41e5c.yaml | 13 + .../notes/fix-wsgi-config-e3f63f91152225f8.yaml | 7 + requirements.txt | 2 + setup.cfg | 3 +- sushy_tools/emulator/base.py | 37 ++ sushy_tools/emulator/constants.py | 20 + sushy_tools/emulator/drivers/memoize.py | 56 -- sushy_tools/emulator/main.py | 710 +++++++++++++++++---- sushy_tools/emulator/memoize.py | 175 +++++ .../emulator/{drivers => resources}/__init__.py | 0 sushy_tools/emulator/resources/base.py | 38 ++ sushy_tools/emulator/resources/chassis/__init__.py | 0 sushy_tools/emulator/resources/chassis/base.py | 69 ++ .../emulator/resources/chassis/staticdriver.py | 122 ++++ sushy_tools/emulator/resources/drives/__init__.py | 0 .../emulator/resources/drives/staticdriver.py | 64 ++ .../emulator/resources/indicators/__init__.py | 0 .../emulator/resources/indicators/staticdriver.py | 87 +++ .../emulator/resources/managers/__init__.py | 0 sushy_tools/emulator/resources/managers/base.py | 69 ++ .../emulator/resources/managers/staticdriver.py | 126 ++++ sushy_tools/emulator/resources/storage/__init__.py | 0 .../emulator/resources/storage/staticdriver.py | 64 ++ sushy_tools/emulator/resources/systems/__init__.py | 0 .../{drivers => resources/systems}/base.py | 66 +- .../systems}/libvirtdriver.py | 404 +++++++++++- .../{drivers => resources/systems}/novadriver.py | 46 +- sushy_tools/emulator/resources/vmedia/__init__.py | 0 .../emulator/resources/vmedia/staticdriver.py | 229 +++++++ sushy_tools/emulator/resources/volumes/__init__.py | 0 .../emulator/resources/volumes/staticdriver.py | 81 +++ sushy_tools/emulator/templates/chassis.json | 101 +++ .../emulator/templates/chassis_collection.json | 15 + sushy_tools/emulator/templates/drive.json | 30 + sushy_tools/emulator/templates/manager.json | 40 ++ .../emulator/templates/manager_collection.json | 16 + sushy_tools/emulator/templates/root.json | 3 + sushy_tools/emulator/templates/simple_storage.json | 21 + .../templates/simple_storage_collection.json | 16 + sushy_tools/emulator/templates/storage.json | 52 ++ .../emulator/templates/storage_collection.json | 16 + sushy_tools/emulator/templates/system.json | 16 + sushy_tools/emulator/templates/thermal.json | 126 ++++ sushy_tools/emulator/templates/virtual_media.json | 27 + .../templates/virtual_media_collection.json | 16 + sushy_tools/emulator/templates/volume.json | 16 + .../emulator/templates/volume_collection.json | 15 + sushy_tools/error.py | 4 + .../unit/emulator/resources/chassis/__init__.py | 0 .../unit/emulator/resources/chassis/test_static.py | 98 +++ .../unit/emulator/resources/drives/__init__.py | 0 .../unit/emulator/resources/drives/test_static.py | 55 ++ .../unit/emulator/resources/indicators/__init__.py | 0 .../emulator/resources/indicators/test_static.py | 57 ++ .../unit/emulator/resources/managers/__init__.py | 0 .../emulator/resources/managers/test_static.py | 75 +++ .../unit/emulator/resources/storage/__init__.py | 0 .../unit/emulator/resources/storage/test_static.py | 50 ++ .../unit/emulator/resources/systems/__init__.py | 0 .../{ => resources/systems}/test_libvirt.py | 150 ++++- .../emulator/{ => resources/systems}/test_nova.py | 7 +- .../unit/emulator/resources/vmedia/__init__.py | 0 .../unit/emulator/resources/vmedia/test_static.py | 136 ++++ .../unit/emulator/resources/volumes/__init__.py | 0 .../unit/emulator/resources/volumes/test_static.py | 86 +++ test-requirements.txt | 2 +- tox.ini | 6 + zuul.d/project.yaml | 3 +- 87 files changed, 5180 insertions(+), 289 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index adfca57..aabb3fe 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,0 +7,2 @@ Flask>=1.0.2 # BSD +requests>=2.14.2 # Apache-2.0 +six>=1.10.0 # MIT diff --git a/test-requirements.txt b/test-requirements.txt index 9b58b41..89cb481 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -13 +13 @@ sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD -openstackdocstheme>=1.18.1 # Apache-2.0 +openstackdocstheme>=1.20.0 # Apache-2.0