We are satisfied to announce the release of: ironic-inspector 10.1.0: Hardware introspection for OpenStack Bare Metal This release is part of the ussuri 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. 10.1.0 ^^^^^^ New Features ************ * Added the capability to define a scope for the inspection process. Previously, all introspection rules were applied when inspecting any node. There was no mechanism to apply only a selected set of rules. This change introduces a "scope" field to introspection rules. If a scope is set on an introspection rule, it will only apply to nodes that have a matching "inspection_scope" property. If not set, it will apply to all nodes. * Added "physnet_cidr_map" processing plugin, the plugin uses the IP address of interfaces returned during inspection and set the port "physical_network" via lookup from a CIDR to physical network mapping in config option "[port_physnet]/cidr_map". Upgrade Notes ************* * The python-ironicclient package has been removed as a dependency in favor of openstacksdk. Third party modules and plugins will require an update if they previously invoked ironicclient. Other Notes *********** * The devstack plugin for "ironic-inspector" has been changed to utilize pre-built "ironic-python-agent" images based on Centos8 instead of legacy CoreOS based images. * Added base class ("BasePhysnetHook") for plugins that assign a physical network to ports. Changes in ironic-inspector 10.0.0..10.1.0 ------------------------------------------ 02c6c92 Native zuulv3 grenade job for inspector de2a532 Give more time for grenade job 079b458 Use autospec=True in mocks 43de977 BasePhysnetHook - Follow up 1a8c1bb Cleanup py27 support a9f7f67 Use unittest.mock instead of third party mock 92e2d26 Port physical network CIDR map hook 216de66 Add variable to set discovery timeout in tempest tests f3a1ca9 Add BasePhysnetHook 1ebba53 Change default ram for tinyipa jobs b85d949 Imported Translations from Zanata fed2cbf Set default boot option to netboot for jobs using cirros 1613a6b Move Babel to test-requirements c28a4d0 Install pymemcache explicitly 7543707 Bump hacking to 3.0.0 e2c8f9f Added scope to introspection rules. 4eefb42 Finalize ironicclient removal 3accdfb Use openstacksdk for ironic module e6ece05 Add words for mutiarch configuration 351347a Explicitly set ramdisk type 0ce61c2 Change CoreOS to Centos for IPA 3d473dc Replace references to the deprecated ironic-agent element ba8ecd3 Stop supporting Flask < 1.0 Diffstat (except docs and test files) ------------------------------------- api-ref/source/introspection-api-v1-rules.inc | 4 + api-ref/source/parameters.yaml | 7 + .../source/samples/api-v1-create-rule-request.json | 3 +- .../samples/api-v1-create-rule-response.json | 3 +- devstack/plugin.sh | 15 +- ironic_inspector/common/ironic.py | 93 +++---- ironic_inspector/conductor/manager.py | 5 +- ironic_inspector/conf/__init__.py | 2 + ironic_inspector/conf/opts.py | 1 + ironic_inspector/conf/port_physnet.py | 36 +++ ironic_inspector/db.py | 1 + ironic_inspector/introspect.py | 21 +- .../locale/en_GB/LC_MESSAGES/ironic_inspector.po | 23 +- ironic_inspector/main.py | 9 +- ...5109d5063a_added_scope_column_to_rules_table.py | 33 +++ ironic_inspector/node_cache.py | 40 +-- ironic_inspector/plugins/base_physnet.py | 103 +++++++ ironic_inspector/plugins/discovery.py | 6 + ironic_inspector/plugins/local_link_connection.py | 4 +- ironic_inspector/plugins/physnet_cidr_map.py | 65 +++++ ironic_inspector/plugins/rules.py | 4 +- ironic_inspector/plugins/standard.py | 6 +- ironic_inspector/process.py | 4 +- ironic_inspector/pxe_filter/base.py | 7 +- ironic_inspector/pxe_filter/dnsmasq.py | 2 +- ironic_inspector/pxe_filter/iptables.py | 2 +- ironic_inspector/rules.py | 45 ++- ironic_inspector/test/base.py | 12 +- ironic_inspector/test/functional.py | 127 ++++----- ironic_inspector/test/unit/test_api_tools.py | 2 +- ironic_inspector/test/unit/test_common_ironic.py | 108 +++---- ironic_inspector/test/unit/test_coordination.py | 3 +- ironic_inspector/test/unit/test_db.py | 2 +- .../test/unit/test_dnsmasq_pxe_filter.py | 18 +- ironic_inspector/test/unit/test_introspect.py | 168 +++++------ ironic_inspector/test/unit/test_iptables.py | 19 +- ironic_inspector/test/unit/test_keystone.py | 3 +- ironic_inspector/test/unit/test_locking.py | 3 +- ironic_inspector/test/unit/test_main.py | 8 +- ironic_inspector/test/unit/test_manager.py | 31 +-- ironic_inspector/test/unit/test_migrations.py | 2 +- ironic_inspector/test/unit/test_node_cache.py | 131 ++++----- ironic_inspector/test/unit/test_plugins_base.py | 2 +- .../test/unit/test_plugins_base_physnet.py | 104 +++++++ .../test/unit/test_plugins_capabilities.py | 3 +- .../test/unit/test_plugins_discovery.py | 22 +- .../test/unit/test_plugins_extra_hardware.py | 6 +- .../test/unit/test_plugins_introspection_data.py | 2 +- .../test/unit/test_plugins_lldp_basic.py | 2 +- .../unit/test_plugins_local_link_connection.py | 35 +-- .../test/unit/test_plugins_pci_devices.py | 2 +- .../test/unit/test_plugins_physnet_cidr_map.py | 155 +++++++++++ .../test/unit/test_plugins_raid_device.py | 4 +- ironic_inspector/test/unit/test_plugins_rules.py | 66 +++-- .../test/unit/test_plugins_standard.py | 19 +- ironic_inspector/test/unit/test_process.py | 112 ++++---- ironic_inspector/test/unit/test_pxe_filter.py | 3 +- ironic_inspector/test/unit/test_rules.py | 86 +++++- ironic_inspector/test/unit/test_swift.py | 3 +- ironic_inspector/test/unit/test_utils.py | 15 +- ironic_inspector/utils.py | 3 +- lower-constraints.txt | 12 +- .../legacy/ironic-inspector-grenade-dsvm/post.yaml | 15 - .../legacy/ironic-inspector-grenade-dsvm/run.yaml | 143 ---------- ...-plugin-to-use-centos8ipa-71621f2b42554374.yaml | 6 + ...introspection_rules_scope-9b06c3ad4e273a52.yaml | 10 + .../notes/physnet-base-4499ad3a7c08725f.yaml | 4 + .../physnet-cidr-map-hook-b38bf8051ad5ba69.yaml | 6 + .../vaporize-ironicclient-8c6afbecc0152dad.yaml | 7 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 310 ++++++++++++++++++++- requirements.txt | 6 +- setup.cfg | 18 +- setup.py | 9 - test-requirements.txt | 9 +- tox.ini | 4 +- zuul.d/ironic-inspector-jobs.yaml | 76 ++++- zuul.d/legacy-ironic-inspector-jobs.yaml | 29 -- zuul.d/project.yaml | 4 +- 84 files changed, 1744 insertions(+), 870 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 233a894..95c0dd4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6 +5,0 @@ alembic>=0.8.10 # MIT -Babel!=2.4.0,>=2.3.4 # BSD @@ -9 +8 @@ eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT -Flask!=0.11,>=0.10 # BSD +Flask>=1.0 # BSD @@ -18 +16,0 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -python-ironicclient!=2.5.2,!=2.7.1,!=3.0.0,>=2.3.0 # Apache-2.0 @@ -20 +18 @@ pytz>=2013.6 # MIT -openstacksdk>=0.30.0 # Apache-2.0 +openstacksdk>=0.40.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 20dfcb8..ce6c002 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,0 +4 @@ + @@ -8,3 +9,2 @@ flake8-import-order>=0.13 # LGPLv3 -hacking>=1.0.0,<1.2.0 # Apache-2.0 -mock>=3.0.0 # BSD -sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD +hacking>=3.0.0,<3.1.0 # Apache-2.0 +sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD @@ -12 +12,2 @@ sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD -openstackdocstheme>=1.20.0 # Apache-2.0 +sphinxcontrib-apidoc>=0.2.0 # BSD +openstackdocstheme>=1.31.2 # Apache-2.0