We contentedly announce the release of: ironic-inspector 8.1.0: Hardware introspection for OpenStack Bare Metal This release is part of the stein release series. The source is available from: https://git.openstack.org/cgit/openstack/ironic-inspector Download the package from: https://tarballs.openstack.org/ironic-inspector/ Please report issues through launchpad: https://storyboard.openstack.org/#!/project/944 For more details, please see below. 8.1.0 ^^^^^ New Features ************ * Adds a configuration option "[iptables]ip_version" to specify the desired ip version for the iptables pxe filter, possible values are "4" and "6", the default value is "4". When set to "6", the iptables pxe filter will use "ip6tables" command to manage rules for the DHCPv6 port "547". * Adds new introspection rules actions to add or remove traits on nodes: "add-trait" and "remove-trait". Upgrade Notes ************* * The deprecated configuration option "[DEFAULT]node_status_keep_time" was removed. * Adds rpc related configuration options for the communication between ironic-inspector API and worker. It needs to be configured properly during upgrade. Set "[DEFAULT]transport_url" to "fake://" if a rpc backend is not available or not desired. Deprecation Notes ***************** * Configuration options "[DEFAULT]ssl_cert_path" and "[DEFAULT]ssl_key_path" are deprecated for ironic-inspector now uses oslo.service as underlying HTTP service instead of Werkzeug. Please use "[ssl]cert_file" and "[ssl]key_file". Bug Fixes ********* * A new rootwrap filter is now included to allow control of the systemd dnsmasq service used by ironic-inspector. This fixes a permission issue when systemctl commands are used as "dnsmasq_start_command" and "dnsmasq_stop_command" in the configuration for the dnsmasq pxe filter. See bug 2002818 (https://storyboard.openstack.org/#!/story/2002818). Note: The filter uses the systemd service name used by the RDO distribution ("openstack-ironic-inspector-dnsmasq.service"). * Fixes issue that can result in introspection failure when a network switch sends incomplete information for LLDP switch_id or port_id. The validation expects these fields when a port is updated, this fix now handles the validation exception. * Allows the "set-attribute" introspection rule action to accept "None" as value for a property. * Fixes the issue that ports were not collected when there were only IPv6 addresses (no IPv4), and the configuration option "[processing]add_ports" was not set to "all". Inspector will report "No suitable interfaces found" if no interface is collected. For more information see Story 1744073 (https://storyboard.openstack.org/#!/story/1744073) Changes in ironic-inspector 8.0.0..8.1.0 ---------------------------------------- 77cfa93 spelling error 22294ab Accept None value for set-attribute 63dceb5 Change openstack-dev to openstack-discuss f8ae2c4 spelling error f15e470 Add a voting bifrost job to ironic-inspector a1c44d2 Support IPv6 address when validating interfaces b750ef5 Replaces http with https in release notes 7703aab Handle validation failure if not all switch fields received 74dcdc4 Remove the repetition words in usage.rst f37eb0f Support ip6tables for iptables pxe filter 3247cb5 Zuul migration edd6810 Wrap Flask into oslo.service a228912 Wrap rpc server into oslo.service 05a86b3 Add API reference 8ab225e Rearrange conf and policy configuration file 4f2f4d8 Test swift python3 support 1ef55e3 Replace subprocess with processutils 4261218 Use templates for cover and lower-constraints 0a26a66 Add introspection rules actions to add/remove traits on nodes d13d814 Replace assertEqual(True/False, *) with assertTrue/assertFalse in tests 86d6173 Imported Translations from Zanata da40b42 Use set_defaults from cors 34b1503 Imported Translations from Zanata 5b44f6e Imported Translations from Zanata 2459cd8 Python 3.7: fix os.errno -> errno 8c5d7de Add rootwrap filter for systemctl control of dnsmasq 574af47 add python 3.6 unit test job 744138a switch documentation job to new PTI 320cc22 import zuul job settings from project-config d188c10 Imported Translations from Zanata 0c7a52b Remove deprecated option node_status_keep_time e1d1d4e Update reno for stable/rocky 9be2d68 Remove unused pydot3 dependency Diffstat (except docs and test files) ------------------------------------- api-ref/source/conf.py | 238 +++++++++++++ api-ref/source/index.rst | 12 + api-ref/source/introspection-api-v1-continue.inc | 68 ++++ .../source/introspection-api-v1-introspection.inc | 226 ++++++++++++ api-ref/source/introspection-api-v1-rules.inc | 155 ++++++++ api-ref/source/introspection-api-versions.inc | 81 +++++ api-ref/source/parameters.yaml | 257 ++++++++++++++ api-ref/source/samples/api-root-response.json | 14 + .../source/samples/api-v1-common-node-uuid.json | 3 + .../source/samples/api-v1-common-rule-uuid.json | 3 + .../source/samples/api-v1-continue-request.json | 75 ++++ .../source/samples/api-v1-create-rule-request.json | 26 ++ .../samples/api-v1-create-rule-response.json | 36 ++ .../api-v1-data-introspection-response.json | 114 ++++++ .../samples/api-v1-get-introspection-response.json | 14 + .../api-v1-get-introspections-response.json | 32 ++ .../source/samples/api-v1-get-rule-response.json | 41 +++ .../source/samples/api-v1-get-rules-response.json | 24 ++ api-ref/source/samples/api-v1-root-response.json | 31 ++ config-generator.conf | 8 - devstack/plugin.sh | 5 +- devstack/upgrade/upgrade.sh | 3 + ironic_inspector/cmd/all.py | 12 +- ironic_inspector/common/rpc.py | 29 +- ironic_inspector/common/rpc_service.py | 62 ++++ ironic_inspector/common/service_utils.py | 6 + ironic_inspector/conductor/manager.py | 108 ++++++ ironic_inspector/conf/default.py | 25 +- ironic_inspector/conf/iptables.py | 6 + ironic_inspector/conf/opts.py | 4 +- .../locale/en_GB/LC_MESSAGES/ironic_inspector.po | 60 ++-- ironic_inspector/main.py | 2 +- ironic_inspector/node_cache.py | 33 +- ironic_inspector/plugins/local_link_connection.py | 8 +- ironic_inspector/plugins/rules.py | 26 +- ironic_inspector/plugins/standard.py | 13 +- ironic_inspector/pxe_filter/dnsmasq.py | 8 +- ironic_inspector/pxe_filter/iptables.py | 42 ++- ironic_inspector/test/functional.py | 1 + .../test/unit/test_dnsmasq_pxe_filter.py | 16 +- ironic_inspector/test/unit/test_iptables.py | 73 +++- ironic_inspector/test/unit/test_manager.py | 203 +++++++++++ ironic_inspector/test/unit/test_node_cache.py | 24 -- .../unit/test_plugins_local_link_connection.py | 18 + ironic_inspector/test/unit/test_plugins_rules.py | 40 +++ .../test/unit/test_plugins_standard.py | 44 +++ ironic_inspector/test/unit/test_rules.py | 12 + ironic_inspector/test/unit/test_wsgi_service.py | 395 ++------------------- ironic_inspector/wsgi_service.py | 204 ++--------- lower-constraints.txt | 4 +- .../post.yaml | 15 - .../run.yaml | 174 --------- .../post.yaml | 15 - .../ironic-inspector-tempest-dsvm-python3/run.yaml | 132 ------- policy-generator.conf | 3 - releasenotes/notes/cors-5f345c65da7f5c99.yaml | 6 +- .../notes/deprecate-ssl-opts-40ce8f4618c786ef.yaml | 7 + ...filter-rootwrap-systemctl-099964ad39d38b4c.yaml | 11 + .../notes/extend-rules-9a9d38701e970611.yaml | 2 +- ...handle-patch-port-failure-9a8b85749104506f.yaml | 6 + .../no-downgrade-migrations-514bf872d9f944ed.yaml | 2 +- ...move-opt-keep-node-status-7d6b96f1a6e498a8.yaml | 5 + .../notes/rpc-backends-0e7405aa1c7723a0.yaml | 7 + ...op-when-setbootdev-failed-68d84fec0843bdc8.yaml | 2 +- .../notes/support-ip6tables-ce30f614de502adb.yaml | 8 + .../notes/trait-actions-eec05cbb6a944619.yaml | 5 + ...perty_instrospectionrules-78d64b8b7643e40d.yaml | 4 + .../validate-ipv6-address-fda29c929754352e.yaml | 9 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 126 +++++-- releasenotes/source/rocky.rst | 6 + requirements.txt | 1 + rootwrap.d/ironic-inspector-firewall.filters | 6 - rootwrap.d/ironic-inspector.filters | 11 + setup.cfg | 4 +- test-requirements.txt | 3 +- tools/config-generator.conf | 12 + tools/policy-generator.conf | 3 + tox.ini | 10 +- zuul.d/ironic-inspector-jobs.yaml | 133 +++++++ zuul.d/legacy-ironic-inspector-jobs.yaml | 20 +- zuul.d/project.yaml | 13 +- 86 files changed, 2620 insertions(+), 1102 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index ef6c055..c0f4edc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -31,0 +32 @@ oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 +oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index aced9f8..204e4ce 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -10,0 +11 @@ openstackdocstheme>=1.18.1 # Apache-2.0 +os-api-ref>=1.4.0 # Apache-2.0 @@ -17,2 +17,0 @@ oslotest>=3.2.0 # Apache-2.0 -pydot3>=1.0.8 # MIT License -