We are amped to announce the release of: ironic-inspector 9.2.0: Hardware introspection for OpenStack Bare Metal This release is part of the train stable release series. The source is available from: https://opendev.org/openstack/ironic-inspector Download the package from: https://tarballs.openstack.org/ironic-inspector/ Please report issues through: https://storyboard.openstack.org/#!/project/944 For more details, please see below. 9.2.0 ^^^^^ Prelude ******* The Train release of Ironic Inspector features support for running separate API and conductor services. New Features ************ * Allows splitting the ironic-inspector service into ironic- inspector- api and ironic-inspector-conductor which coordinate via tooz and its underlying backend. A new configuration option "[DEFAULT]standalone" is introduced to enable this feature. The configuration defaults to True, and ironic-inspector runs as a single service, which is compatible with the old behavior. When set to False, "ironic- inspector-api-wsgi" is used to start the API service, and "ironic- inspector-conductor" is used to start the conductor service. For ironic-inspector running in non-standalone mode, the user needs to set the new configuration option "[coordination]backend_url", which specifies the backend used for coordination. Upgrade Notes ************* * Updates the default Ironic API version to 1.56, which is the most recent version in the Stein series Bare Metal release (12.1.0). Bug Fixes ********* * Fixes introspection of active nodes that are not in the lookup cache, see story 2006233 (https://storyboard.openstack.org/#!/story/2006233). Changes in ironic-inspector 9.1.0..9.2.0 ---------------------------------------- 833635d Don't use configuration options in function signatures d257171 Exclude python-ironicclient 3.0.0 from requirements.txt 40f1dff Clean up release notes for 10.0.0 adc1c24 Docs for ironic inspector with tooz 76cbd2d Build pdf doc e0f659d Add processing_hooks support in devstack 551fb98 Update non-standalone job to use uwsgi 9b92204 Adds job to run inspector in non-standalone mode 293b0c7 Split API and conductor services 503cba2 CI documentation 1bed475 Adds tooz locking driver da69fca CI: clean up the required projects list for grenade 35a01fe Adds missing log when store_data is database 9e690fc Update default ironic API version list 0c9447d Active node introspection for nodes not in cache 0c15499 Use the database data backend in functional tests 4f57816 Allow running a specific functional test via CLI f979456 testenv does not install requirements 1f0be4a Adds an abstract locking layer d96d99c Remove werkzeug exception handling Diffstat (except docs and test files) ------------------------------------- devstack/plugin.sh | 81 +++++++++++- ironic_inspector/cmd/all.py | 6 + ironic_inspector/cmd/conductor.py | 42 +++++++ ironic_inspector/cmd/wsgi.py | 34 +++++ ironic_inspector/common/coordination.py | 137 +++++++++++++++++++++ ironic_inspector/common/ironic.py | 85 ++++++++++++- ironic_inspector/common/locking.py | 108 ++++++++++++++++ ironic_inspector/common/rpc.py | 31 +++-- ironic_inspector/common/service_utils.py | 3 + ironic_inspector/common/swift.py | 9 +- ironic_inspector/conductor/manager.py | 41 +++++- ironic_inspector/conf/__init__.py | 2 + ironic_inspector/conf/coordination.py | 35 ++++++ ironic_inspector/conf/default.py | 3 + ironic_inspector/conf/opts.py | 1 + ironic_inspector/main.py | 86 +++++++++++-- ironic_inspector/node_cache.py | 69 +++++++---- ironic_inspector/plugins/discovery.py | 25 +--- ironic_inspector/process.py | 19 ++- ironic_inspector/test/functional.py | 126 ++++++++++--------- ironic_inspector/test/unit/test_common_ironic.py | 82 ++++++++++++ ironic_inspector/test/unit/test_coordination.py | 123 ++++++++++++++++++ ironic_inspector/test/unit/test_locking.py | 109 ++++++++++++++++ ironic_inspector/test/unit/test_main.py | 118 +++++++++++++----- ironic_inspector/test/unit/test_manager.py | 70 +++++++++++ ironic_inspector/test/unit/test_node_cache.py | 114 +++++++++++------ ironic_inspector/test/unit/test_process.py | 56 ++++++++- ironic_inspector/test/unit/test_wsgi_service.py | 27 ++-- ironic_inspector/utils.py | 7 ++ ironic_inspector/wsgi_service.py | 18 +-- lower-constraints.txt | 9 +- .../legacy/ironic-inspector-grenade-dsvm/run.yaml | 5 - .../active-node-not-in-cache-b2d7b77603f02a66.yaml | 5 + .../notes/prelude-10.0.0-773ef7f14a5dfdf5.yaml | 4 + .../notes/split-services-99873ff27ef2d89b.yaml | 14 +++ ...-default-ironic-api-stein-b3b01ec542fa8f15.yaml | 6 + requirements.txt | 5 +- setup.cfg | 3 + test-requirements.txt | 6 +- tox.ini | 16 ++- zuul.d/ironic-inspector-jobs.yaml | 19 +++ zuul.d/legacy-ironic-inspector-jobs.yaml | 5 - zuul.d/project.yaml | 2 + 48 files changed, 1635 insertions(+), 287 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index ae6ea25..7aed082 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15 +15 @@ keystoneauth1>=3.4.0 # Apache-2.0 -keystonemiddleware>=4.17.0 # Apache-2.0 +keystonemiddleware>=4.18.0 # Apache-2.0 @@ -18 +18 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -python-ironicclient>=2.3.0 # Apache-2.0 +python-ironicclient!=2.5.2,!=2.7.1,!=3.0.0,>=2.3.0 # Apache-2.0 @@ -37,0 +38 @@ SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT +tooz>=1.64.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index ce3392e..69676d5 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9 +9 @@ hacking>=1.0.0,<1.2.0 # Apache-2.0 -mock>=2.0.0 # BSD +mock>=3.0.0 # BSD @@ -12 +12,2 @@ sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD -openstackdocstheme>=1.18.1 # Apache-2.0 +sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD +openstackdocstheme>=1.20.0 # Apache-2.0 @@ -13,0 +15 @@ os-api-ref>=1.4.0 # Apache-2.0 +pymemcache!=1.3.0,>=1.2.9 # Apache 2.0 License