[release-announce] sushy 2.0.0 (train)

no-reply at openstack.org no-reply at openstack.org
Fri Sep 6 00:06:44 UTC 2019


We are pleased to announce the release of:

sushy 2.0.0: Sushy is a small Python library to communicate with
Redfish based systems

This release is part of the train stable release series.

The source is available from:

    https://opendev.org/openstack/sushy

Download the package from:

    https://tarballs.openstack.org/sushy/

Please report issues through:

    https://storyboard.openstack.org/#!/project/openstack/sushy

For more details, please see below.

2.0.0
^^^^^


New Features
************

* Exposes the "endpoint" sub-resource from the "fabric" resource.
  "endpoint" represents the properties of an entity that sends or
  receives protocol defined messages over a transport.

* Adds a new field called "MappedListField" which supports a list of
  mapped instances.

* Adds the ability to conditionally match sushy fields against
  received JSON object. The conditional matching is performed by a
  user-supplied callable which gets the key to consider (along with
  the value and potentially other details) and should indicate the the
  caller if the match occurred. The motivation behind this change is
  to accommodate malformed Redfish resource properties as observed in
  the OEM wilderness.

* Update the Storage, Volume, and Drive models to support RAID
  configuration management.

* Exposes "UpdateService" constants to "sushy" namespace.


Upgrade Notes
*************

* OEM resource class hierarchy has been redesigned to allow for non-
  terminal sub-resources (e.g. Links) to be handled within OEM
  resource model. As a consequence, backward compatibility with
  previously existing OEM extension framework (anything based on
  "OEMExtensionResourceBase" class) is not preserved. User OEM code
  migration would involve switching from "OEMExtensionResourceBase" to
  "OEMResourceBase" (note "__init__" call signature change) and
  replacing "OEMField"-based classes with their generic sushy "Field"
  counterparts.


Bug Fixes
*********

* Improve interoperability by including the recommended OData-
  Version header in outgoing Redfish requests.

* Disable HTTP connection pooling by asking HTTP server to close our
  connection right upon use. The rationale is that some BMC observed
  in the wild seem to close persistent connections abruptly upon
  eventual re-use failing completely unrelated operation. So in
  "sushy" we just try not to maintain persistent connections with BMC
  at all.

* Makes "Manager->Actions" field optional as Redfish Manager schema
  defines it. Otherwise sushy fails hard at parsing response from a
  Redfish agent that does not include "Actions" field in its document
  tree.

* Fixes bug in "UpdateService.simple_update" method making it
  operational.

* The "transfer_protocol" parameter of the
  "UpdateService.simple_update" method should be given one of the
  newly exposed constants rather than a string literal. This is a
  breaking change.

* Fixes an issue in performing action "#Bios.ResetBios" when BMC
  expects the POST request with empty body instead of no body. See
  story 2006246 for details.

Changes in sushy 1.9.0..2.0.0
-----------------------------

ae2bafb Build pdf doc
3d6de03 Add conditional field matching
e03caca Change OEM extensions architecture
bb9859d Unify OEM Actions with non-OEM Actions
72fd054 Implements adapter checking
219d93a Retry Virtual Media eject action on HTTP 400 response
ba1b822 Cache message registries
84e085f Disable HTTP connection pooling
d182d6f Add MappedListField
9351999 Make message registries available to all resources
83a6a8c Action #Bios.ResetBios fails as POST request has no body
d7a4e5c Added changes to `simple_update` on update service
0bd97a0 Make UpdateService.simple_update() operational
2858bb6 Fix exposed UpdateService constants
f9a62fa Low case `ParamTypes` in received `MessageRegistry`
3189536 Disregard registry files of unsupported types
a522896 Handle incomplete message registries
dc127c8 Refactor DurableName identifier and Protocol fields
ca84711 Add ``Endpoint`` sub-resource to ``Fabric``
1e74911 Update Python 3 test runtimes for Train
f6a167c Include OData-Version header in Redfish requests
343f7a6 Enhance Storage models to support RAID config
a891871 Make Manager->Actions field optional


Diffstat (except docs and test files)
-------------------------------------

lower-constraints.txt                              |   2 +-
...int-subresource-to-fabric-b03e5fd99ece1bf4.yaml |   6 +
.../add-mapped-list-field-04c671f7a73d83f6.yaml    |   5 +
.../add-odata-version-header-96dc8179c0e2e9bd.yaml |   5 +
.../add-partial-key-match-27bed73d577b1187.yaml    |   9 ++
.../disable-conn-pooling-3456782afe56ac94.yaml     |   8 +
...ance-oem-extension-design-3143717e710b3eaf.yaml |  11 ++
...rage-volume-drive-support-16314d30f3631fb3.yaml |   5 +
.../notes/fix-manager-action-d71fd415cea29aa6.yaml |   7 +
.../notes/fix-simple-update-e88838fab4170920.yaml  |   4 +
...-update-service-constants-b8c3f48ccee6ce1f.yaml |   9 ++
...ios-return-http-error-415-08170df7fe6300f8.yaml |   6 +
setup.cfg                                          |   3 +-
sushy/__init__.py                                  |   8 +-
sushy/connector.py                                 |  10 ++
sushy/exceptions.py                                |  13 +-
sushy/main.py                                      |  67 +++++---
sushy/resources/base.py                            | 116 ++++++++++++--
sushy/resources/chassis/chassis.py                 |  24 +--
sushy/resources/common.py                          |  16 ++
.../compositionservice/compositionservice.py       |  13 +-
.../resources/compositionservice/resourceblock.py  |  16 +-
sushy/resources/compositionservice/resourcezone.py |  16 +-
sushy/resources/constants.py                       |  42 +++++
sushy/resources/fabric/constants.py                |  73 +++++----
sushy/resources/fabric/endpoint.py                 | 169 +++++++++++++++++++++
sushy/resources/fabric/fabric.py                   |  31 +++-
sushy/resources/fabric/mappings.py                 |  71 +++++----
sushy/resources/manager/manager.py                 |  24 +--
sushy/resources/manager/virtual_media.py           |   4 +-
sushy/resources/mappings.py                        |  38 +++++
sushy/resources/oem/base.py                        | 116 +++++---------
sushy/resources/oem/common.py                      |  15 +-
sushy/resources/oem/fake.py                        |  25 +--
sushy/resources/registry/message_registry.py       |   2 +-
sushy/resources/registry/message_registry_file.py  |  80 +++++++---
sushy/resources/sessionservice/session.py          |  15 +-
sushy/resources/sessionservice/sessionservice.py   |  10 +-
sushy/resources/system/bios.py                     |  17 ++-
sushy/resources/system/processor.py                |  16 +-
sushy/resources/system/storage/constants.py        |  41 +++++
sushy/resources/system/storage/drive.py            |  12 ++
sushy/resources/system/storage/mappings.py         |  33 ++++
sushy/resources/system/storage/storage.py          |  41 ++++-
sushy/resources/system/storage/volume.py           |  92 +++++++++++
sushy/resources/system/system.py                   |  34 +++--
sushy/resources/updateservice/constants.py         |  22 +--
sushy/resources/updateservice/mappings.py          |  24 ++-
sushy/resources/updateservice/softwareinventory.py |  16 +-
sushy/resources/updateservice/updateservice.py     |  96 +++++++-----
.../unit/json_samples/endpoint_collection.json     |  13 ++
.../compositionservice/test_compositionservice.py  |   6 +-
.../compositionservice/test_resourceblock.py       |  20 ++-
.../compositionservice/test_resourcezone.py        |  20 ++-
.../unit/resources/manager/test_virtual_media.py   |  24 ++-
.../resources/registry/test_message_registry.py    |   8 +-
.../registry/test_message_registry_file.py         |  89 ++++++++++-
.../unit/resources/sessionservice/test_session.py  |  20 +--
.../sessionservice/test_sessionservice.py          |  12 +-
.../unit/resources/system/storage/test_drive.py    |  16 +-
.../unit/resources/system/storage/test_storage.py  |  51 +++++--
.../unit/resources/system/storage/test_volume.py   |  83 +++++++++-
.../resources/system/test_ethernet_interfaces.py   |  17 ++-
.../unit/resources/system/test_simple_storage.py   |  18 ++-
.../updateservice/test_softwareinventory.py        |  16 +-
.../resources/updateservice/test_updateservice.py  |  41 ++++-
test-requirements.txt                              |   2 +-
tox.ini                                            |   6 +
zuul.d/project.yaml                                |   2 +-
88 files changed, 2041 insertions(+), 577 deletions(-)


Requirements updates
--------------------

diff --git a/test-requirements.txt b/test-requirements.txt
index 6f8ebee..ed514e0 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -11 +11 @@ 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






More information about the Release-announce mailing list