Merge "Remove useless cover target"
diff --git a/ironic_tempest_plugin/config.py b/ironic_tempest_plugin/config.py
index 47bcb55..38a67eb 100644
--- a/ironic_tempest_plugin/config.py
+++ b/ironic_tempest_plugin/config.py
@@ -20,6 +20,10 @@
from tempest import config # noqa
+_INSPECTOR_REASON = ('ironic-inspector was retired in favor of the built-in'
+ 'agent inspect interface.')
+
+
# NOTE(TheJulia): The following options are loaded into a tempest
# plugin configuration option via plugin.py.
ironic_service_option = cfg.BoolOpt('ironic',
@@ -29,6 +33,8 @@
inspector_service_option = cfg.BoolOpt("ironic_inspector",
default=False,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Whether or not ironic-inspector "
"is expected to be available")
@@ -40,6 +46,8 @@
inspector_scope_enforcement = cfg.BoolOpt('ironic_inspector',
default=True,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help='Whether or not '
'ironic-inspector is expected '
'to enforce auth scope.')
@@ -288,28 +296,42 @@
BaremetalIntrospectionGroup = [
cfg.StrOpt('catalog_type',
default='baremetal-introspection',
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Catalog type of the baremetal provisioning service"),
cfg.StrOpt('endpoint_type',
default='publicURL',
choices=['public', 'admin', 'internal',
'publicURL', 'adminURL', 'internalURL'],
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="The endpoint type to use for the baremetal introspection"
" service"),
cfg.IntOpt('introspection_sleep',
default=30,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Introspection sleep before check status"),
cfg.IntOpt('introspection_timeout',
default=600,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Introspection time out"),
cfg.IntOpt('introspection_start_timeout',
default=90,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Timeout to start introspection"),
cfg.IntOpt('hypervisor_update_sleep',
default=60,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Time to wait until nova becomes aware of "
"bare metal instances"),
cfg.IntOpt('hypervisor_update_timeout',
default=300,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Time out for wait until nova becomes aware of "
"bare metal instances"),
# NOTE(aarefiev): status_check_period default is 60s, but checking
@@ -317,14 +339,20 @@
# 80s would be enough to make one more check.
cfg.IntOpt('ironic_sync_timeout',
default=80,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Time it might take for Ironic--Inspector "
"sync to happen"),
cfg.IntOpt('discovery_timeout',
default=300,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Time to wait until new node would enrolled in "
"ironic"),
cfg.BoolOpt('auto_discovery_feature',
default=False,
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="Is the auto-discovery feature enabled. Enroll hook "
"should be specified in node_not_found_hook - processing "
"section of inspector.conf"),
@@ -332,11 +360,17 @@
# TODO(dtantsur): change to fake-hardware when Queens is no
# longer supported.
default='fake',
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="The driver expected to be set on newly discovered nodes. "
"Only has effect with auto_discovery_feature is True."),
cfg.StrOpt('auto_discovery_target_driver',
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="The driver to set on the newly discovered nodes. "
"Only has effect with auto_discovery_feature is True."),
cfg.StrOpt('data_store',
+ deprecated_for_removal=True,
+ deprecated_reason=_INSPECTOR_REASON,
help="The storage backend for storing introspection data."),
]
diff --git a/ironic_tempest_plugin/tests/api/admin/test_portgroups.py b/ironic_tempest_plugin/tests/api/admin/test_portgroups.py
index 332c791..80724fe 100644
--- a/ironic_tempest_plugin/tests/api/admin/test_portgroups.py
+++ b/ironic_tempest_plugin/tests/api/admin/test_portgroups.py
@@ -21,7 +21,7 @@
class TestPortGroups(base.BaseBaremetalTest):
"""Basic positive test cases for port groups."""
- min_microversion = '1.23'
+ min_microversion = '1.26' # portgroup mode and properties introduced
def setUp(self):
super(TestPortGroups, self).setUp()
diff --git a/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_advanced_ops.py b/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_advanced_ops.py
index 0a7116a..b66309b 100644
--- a/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_advanced_ops.py
+++ b/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_advanced_ops.py
@@ -27,6 +27,7 @@
driver = 'redfish'
deploy_interface = 'direct'
boot_interface = 'redfish-virtual-media'
+ # To force interface retoggling.
image_ref = CONF.baremetal.whole_disk_image_ref
image_checksum = CONF.baremetal.whole_disk_image_checksum
wholedisk_image = True
@@ -95,7 +96,23 @@
# Get the latest state for the node.
self.node = self.get_node(self.node['uuid'])
+ # This test, as far as I'm remembering after the fact, was developed
+ # in an environment where neutron was the default network interface.
+ # so we must try to set it to properly ensure dhcp-less operation.
prior_prov_net = self.node['driver_info'].get('provisioning_network')
+ try:
+ self.client.update_node(self.node['uuid'],
+ [{'path': '/network_interface',
+ 'op': 'replace',
+ 'value': 'neutron'}])
+ self.addCleanup(self.update_node,
+ self.node['uuid'],
+ [{'op': 'replace',
+ 'path': '/network_interface',
+ 'value': 'flat'}])
+ except Exception:
+ raise self.skipException(
+ "Ironic configuration incorrect to exercise this test.")
ip_version = CONF.validation.ip_version_for_ssh
tenant_cidr = '10.0.6.0/24'
diff --git a/releasenotes/notes/deprecate-inspector-0de255090cd2cb82.yaml b/releasenotes/notes/deprecate-inspector-0de255090cd2cb82.yaml
new file mode 100644
index 0000000..0607071
--- /dev/null
+++ b/releasenotes/notes/deprecate-inspector-0de255090cd2cb82.yaml
@@ -0,0 +1,10 @@
+---
+deprecations:
+ - |
+ Support for ironic-inspector has been deprecated, because ironic-inspector
+ was already retired. Due to this deprecation, the following options are
+ also deprecated.
+
+ - ``[service_available] ironic_inspector``
+ - ``[enforce_scope] ironic_inspector``
+ - All options in the ``[baremetal_introspection]`` section.
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index 8ba9c3a..c89b63e 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -7,34 +7,29 @@
jobs:
# NOTE(dtantsur): keep N-3 and older non-voting for these jobs.
- ironic-tempest-functional-python3
+ - ironic-tempest-functional-python3-2025.2
- ironic-tempest-functional-python3-2025.1
- - ironic-tempest-functional-python3-2024.2
+ # NOTE(TheJulia): Consensus in the 2026.1 PTG is that we don't need
+ # to run the anaconda job as heavily as we need to run the normal
+ # tempest jobs.
- ironic-standalone-anaconda
- - ironic-standalone-anaconda-2025.1
- - ironic-standalone-anaconda-2024.2
- ironic-standalone-redfish
+ - ironic-standalone-redfish-2025.2
- ironic-standalone-redfish-2025.1
- - ironic-standalone-redfish-2024.2
- # NOTE(dtantsur): inspector is deprecated and rarely sees any changes,
- # no point in running many jobs
- - ironic-inspector-tempest
# NOTE(dtantsur): these jobs cover rarely changed tests and are quite
# unstable, so keep them non-voting.
- ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode:
voting: false
- - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2025.1:
+ - ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2025.2:
voting: false
- ironic-inspector-tempest-discovery:
voting: false
gate:
jobs:
- ironic-tempest-functional-python3
+ - ironic-tempest-functional-python3-2025.2
- ironic-tempest-functional-python3-2025.1
- - ironic-tempest-functional-python3-2024.2
- ironic-standalone-anaconda
- - ironic-standalone-anaconda-2025.1
- - ironic-standalone-anaconda-2024.2
- ironic-standalone-redfish
+ - ironic-standalone-redfish-2025.2
- ironic-standalone-redfish-2025.1
- - ironic-standalone-redfish-2024.2
- - ironic-inspector-tempest
diff --git a/zuul.d/stable-jobs.yaml b/zuul.d/stable-jobs.yaml
index d573737..f67694b 100644
--- a/zuul.d/stable-jobs.yaml
+++ b/zuul.d/stable-jobs.yaml
@@ -1,12 +1,7 @@
- job:
- name: ironic-standalone-2024.2
- parent: ironic-standalone
- override-checkout: stable/2024.2
-
-- job:
- name: ironic-standalone-2024.1
- parent: ironic-standalone
- override-checkout: stable/2024.1
+ name: ironic-standalone-redfish-2025.2
+ parent: ironic-standalone-redfish
+ override-checkout: stable/2025.2
- job:
name: ironic-standalone-redfish-2025.1
@@ -14,14 +9,9 @@
override-checkout: stable/2025.1
- job:
- name: ironic-standalone-redfish-2024.2
- parent: ironic-standalone-redfish
- override-checkout: stable/2024.2
-
-- job:
- name: ironic-standalone-redfish-2024.1
- parent: ironic-standalone-redfish
- override-checkout: stable/2024.1
+ name: ironic-standalone-anaconda-2025.2
+ parent: ironic-standalone-anaconda
+ override-checkout: stable/2025.2
- job:
name: ironic-standalone-anaconda-2025.1
@@ -29,14 +19,9 @@
override-checkout: stable/2025.1
- job:
- name: ironic-standalone-anaconda-2024.2
- parent: ironic-standalone-anaconda
- override-checkout: stable/2024.2
-
-- job:
- name: ironic-standalone-anaconda-2024.1
- parent: ironic-standalone-anaconda
- override-checkout: stable/2024.1
+ name: ironic-tempest-functional-python3-2025.2
+ parent: ironic-tempest-functional-python3
+ override-checkout: stable/2025.2
- job:
name: ironic-tempest-functional-python3-2025.1
@@ -44,46 +29,11 @@
override-checkout: stable/2025.1
- job:
- name: ironic-tempest-functional-python3-2024.2
- parent: ironic-tempest-functional-python3
- override-checkout: stable/2024.2
-
-- job:
- name: ironic-tempest-functional-python3-2024.1
- parent: ironic-tempest-functional-python3
- override-checkout: stable/2024.1
-
-- job:
- name: ironic-tempest-functional-rbac-scope-enforced-2024.2
- parent: ironic-tempest-functional-rbac-scope-enforced
- override-checkout: stable/2024.2
-
-- job:
- name: ironic-tempest-functional-rbac-scope-enforced-2024.1
- parent: ironic-tempest-functional-rbac-scope-enforced
- override-checkout: stable/2024.1
+ name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2025.2
+ parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
+ override-checkout: stable/2025.2
- job:
name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2025.1
parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
override-checkout: stable/2025.1
-
-- job:
- name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2024.2
- parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
- override-checkout: stable/2024.2
-
-- job:
- name: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode-2024.1
- parent: ironic-tempest-ipa-wholedisk-direct-tinyipa-multinode
- override-checkout: stable/2024.1
-
-- job:
- name: ironic-inspector-tempest-2024.2
- parent: ironic-inspector-tempest
- override-checkout: stable/2024.2
-
-- job:
- name: ironic-inspector-tempest-2024.1
- parent: ironic-inspector-tempest
- override-checkout: stable/2024.1