We exuberantly announce the release of: sushy 1.8.0: Sushy is a small Python library to communicate with Redfish based systems This release is part of the stein stable release series. The source is available from: https://git.openstack.org/cgit/openstack/sushy Download the package from: https://tarballs.openstack.org/sushy/ Please report issues through launchpad: https://storyboard.openstack.org/#!/project/960 For more details, please see below. 1.8.0 ^^^^^ New Features ************ * Establishes linkage between Chassis and ComputerSystem/Managers resources as references at sushy data abstraction level. That makes it possible to look up Chassis by Manager/ComputerSystem or any other way around. * Adds support for the Chassis resource to the library. * Adds foundation for supporting resource extensibility proposed as OEM extensibility in Redfish specification [1] to the library. * Provides an attribute 'oem_vendors' in Resource classes to discover the available OEM extensions. * Provides a method 'get_oem_extension()' in Resource classes to get the vendor defined resource OEM extension object, if discovered. [1] http://redfish.dmtf.org/schemas/DSP0266_1.1.html#resource- extensibility * Establishes ComputerSystem->Managers and Manager->ComputerSystems references at sushy data abstraction level what make it possible to look up Manager(s) responsible for a ComputerSystem and vice versa. * Adds support for the CompositionService resource to the library. The *CompositionService* is the top level resource for all things related to Composability. If a Redfish service supports Composability, the Service Root resource will contain the *CompositionService* property. * Adds support for the UpdateService resource to the library. *UpdateService* is responsible for managing firmware updates. * Unifies sushy models by Redfish schema bundle. These changes introduce and update currently implemented sushy models to comply with the most recent schema bundle[1]. [1]https://www.dmtf.org/documents/redfish-spmf/redfish-schema- bundle-20181 Bug Fixes ********* * Some vendors like HPE iLO has this kind of implementation that for eject virtual media need to pass empty dictionary otherwise throws Unsupported media type error. Changes in sushy 1.7.0..1.8.0 ----------------------------- 668c40d Add foundation for supporting Redfish OEMs 63fc359 Introduce default value for `transfer_protocol` parameter 9bd1d6b Add support for ilo Virtual Media 396da34 Add support for the `CompositionService` resource 88aeb03 Add support for the `UpdateService` resource 945edeb Follow Up Zuulv3 185b250 Move to zuulv3 69f5e98 Introduce `dateutil` 70485a9 Update the docstring of `sub_processors()` 02ddce7 Update to public 47053d4 Add missing tests bbbadbd Add Chassis<->ComputerSystem/Manager linkage dedc0e3 Add System<->Manager linkage follow up 0bf7cbf Add System<->Manager linkage 5353214 Change openstack-dev to openstack-discuss and update URL c5d13e4 Add `ChassisCollection` and `Chassis` classes 9a0b773 Cleanup JsonDataReader name 67406a2 remove useless whitespces 3c7a281 Unify sushy models by Redfish schema bundle 878a32e Add support for loading resources from archive file Diffstat (except docs and test files) ------------------------------------- lower-constraints.txt | 3 +- .../post.yaml | 15 -- .../run.yaml | 159 ------------- .../add-chassis-linkage-d8e567f9c791169d.yaml | 7 + .../add-chassis-support-5b97daffe1c61a2b.yaml | 5 + ...ish-oem-extension-support-50c9849bb7b6b25c.yaml | 13 ++ ...dd-system-manager-linkage-86be69c9df4cb359.yaml | 6 + .../add_composition_service-84750d8d1d96474a.yaml | 8 + .../notes/add_update_service-b54c9bb0177e3468.yaml | 5 + ...ix-eject-media-empty-dict-573b4c9e06f52ce7.yaml | 6 + .../update_sushy_models-9b8ea0350eb4d4d0.yaml | 7 + requirements.txt | 2 + setup.cfg | 9 +- sushy/__init__.py | 1 + sushy/exceptions.py | 12 + sushy/main.py | 64 ++++++ sushy/resources/base.py | 89 +++++++- sushy/resources/chassis/__init__.py | 0 sushy/resources/chassis/chassis.py | 252 +++++++++++++++++++++ sushy/resources/chassis/constants.py | 162 +++++++++++++ sushy/resources/chassis/mappings.py | 48 ++++ sushy/resources/compositionservice/__init__.py | 0 .../compositionservice/compositionservice.py | 96 ++++++++ sushy/resources/compositionservice/constants.py | 31 +++ sushy/resources/compositionservice/mappings.py | 40 ++++ .../resources/compositionservice/resourceblock.py | 112 +++++++++ sushy/resources/compositionservice/resourcezone.py | 92 ++++++++ sushy/resources/constants.py | 61 +++++ sushy/resources/manager/constants.py | 9 +- sushy/resources/manager/manager.py | 45 ++++ sushy/resources/manager/virtual_media.py | 13 +- sushy/resources/mappings.py | 30 +++ sushy/resources/oem/__init__.py | 15 ++ sushy/resources/oem/base.py | 107 +++++++++ sushy/resources/oem/common.py | 132 +++++++++++ sushy/resources/oem/fake.py | 41 ++++ sushy/resources/registry/message_registry_file.py | 1 + sushy/resources/sessionservice/session.py | 3 + sushy/resources/sessionservice/sessionservice.py | 3 + sushy/resources/settings.py | 46 +++- sushy/resources/system/constants.py | 62 +++-- sushy/resources/system/ethernet_interface.py | 2 +- sushy/resources/system/mappings.py | 44 ++-- sushy/resources/system/processor.py | 28 ++- sushy/resources/system/storage/drive.py | 2 +- sushy/resources/system/system.py | 50 +++- sushy/resources/updateservice/__init__.py | 0 sushy/resources/updateservice/constants.py | 26 +++ sushy/resources/updateservice/mappings.py | 35 +++ sushy/resources/updateservice/softwareinventory.py | 96 ++++++++ sushy/resources/updateservice/updateservice.py | 155 +++++++++++++ .../unit/json_samples/chassis_collection.json | 25 ++ .../unit/json_samples/compositionservice.json | 21 ++ .../unit/json_samples/ethernet_interfaces.json | 2 +- .../unit/json_samples/message_registry_file.json | 2 +- .../json_samples/resourceblock_collection.json | 11 + .../unit/json_samples/resourcezone_collection.json | 13 ++ .../json_samples/softwareinventory_collection.json | 14 ++ .../unit/resources/compositionservice/__init__.py | 0 .../compositionservice/test_compositionservice.py | 49 ++++ .../compositionservice/test_resourceblock.py | 107 +++++++++ .../compositionservice/test_resourcezone.py | 93 ++++++++ .../unit/resources/manager/test_virtual_media.py | 14 ++ .../resources/registry/test_message_registry.py | 4 +- .../updateservice/test_softwareinventory.py | 90 ++++++++ .../resources/updateservice/test_updateservice.py | 106 +++++++++ sushy/utils.py | 75 +++++- zuul.d/legacy-sushy-jobs.yaml | 26 --- zuul.d/project.yaml | 4 +- zuul.d/sushy-jobs.yaml | 15 ++ 107 files changed, 3630 insertions(+), 299 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index ad13f8c..14f51f5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,0 +8,2 @@ six>=1.10.0 # MIT +python-dateutil>=2.7.0 # BSD +stevedore>=1.29.0 # Apache-2.0