Mark SNMP driver unsupported for removal
The SNMP driver uses pysnmp-lextudio, we'll be lucky if it works through the deprecation period. If by the start of the 2026.2 cycle it's not been migrated to a different library, it will need to be removed. In order to keep CI running on an unsupported driver, I've added an option to the devstack plugin to skip failing on upgrade check. Related-Bug: 2106674 Generated-By: Jetbrains Junie Change-Id: Ibe5576d04fc3ca1cc102f126853ed3d1e8c404d2
This commit is contained in:
@@ -91,6 +91,10 @@ fi
|
||||
# Ping timeout after the node becomes active
|
||||
IRONIC_PING_TIMEOUT=${IRONIC_PING_TIMEOUT:-}
|
||||
|
||||
# Whether to allow devstack to continue when ironic-status upgrade check
|
||||
# finds unsupported drivers. Set to "true" to continue despite the error.
|
||||
IRONIC_ALLOW_UNSUPPORTED_DRIVERS=$(trueorfalse False IRONIC_ALLOW_UNSUPPORTED_DRIVERS)
|
||||
|
||||
# Deploy to hardware platform
|
||||
IRONIC_HW_NODE_CPU=${IRONIC_HW_NODE_CPU:-1}
|
||||
IRONIC_HW_NODE_RAM=${IRONIC_HW_NODE_RAM:-512}
|
||||
@@ -2165,11 +2169,14 @@ function init_ironic {
|
||||
|
||||
# NOTE(rloo): We're not upgrading but want to make sure this command works,
|
||||
# even though we're not parsing the output of this command.
|
||||
$IRONIC_BIN_DIR/ironic-status upgrade check
|
||||
|
||||
$IRONIC_BIN_DIR/ironic-status upgrade check && ret_val=$? || ret_val=$?
|
||||
if [ $ret_val -gt 1 ] ; then
|
||||
die $LINENO "The `ironic-status upgrade check` command returned an error. Cannot proceed."
|
||||
# Allow continuing even with unsupported drivers if explicitly enabled
|
||||
if [[ "${IRONIC_ALLOW_UNSUPPORTED_DRIVERS}" != "True" ]]; then
|
||||
die $LINENO "The `ironic-status upgrade check` command returned an error. Cannot proceed."
|
||||
else
|
||||
echo "WARNING: Continuing despite upgrade check failure because IRONIC_ALLOW_UNSUPPORTED_DRIVERS=True"
|
||||
fi
|
||||
fi
|
||||
if is_service_enabled ir-novnc; then
|
||||
create_systemd_container_dir
|
||||
|
@@ -25,6 +25,12 @@ from ironic.drivers.modules import snmp
|
||||
class SNMPHardware(generic.GenericHardware):
|
||||
"""SNMP Hardware type """
|
||||
|
||||
# NOTE(JayF) The SNMP driver depends on an old, out of maintenance library
|
||||
# pysnmp-lextudio; unless it is migrated to a modern library (pysnmp),
|
||||
# it will be removed in a future Ironic release. See bug #2106674.
|
||||
# TODO(JayF) Remove this driver on or after OpenStack 2026.1 release.
|
||||
supported = False
|
||||
|
||||
@property
|
||||
def supported_power_interfaces(self):
|
||||
"""List of supported power interfaces."""
|
||||
|
@@ -0,0 +1,10 @@
|
||||
deprecations:
|
||||
- |
|
||||
The SNMP hardware type and associated interfaces have been deprecated
|
||||
for removal in a future Ironic release. It currently depends on an
|
||||
outdated, unsupported library and unless it is migrated off that library
|
||||
by the end of the 2026.1 cycle it will be removed.
|
||||
|
||||
Operators utilizing this driver will need to find an alternate way
|
||||
to manage their machines. Alternatively, the Ironic community welcomes
|
||||
contributions to keep this driver alive.
|
@@ -482,6 +482,7 @@
|
||||
IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
|
||||
IRONIC_VM_EPHEMERAL_DISK: 0
|
||||
IRONIC_AUTOMATED_CLEAN_ENABLED: False
|
||||
IRONIC_ALLOW_UNSUPPORTED_DRIVERS: True
|
||||
# NOTE(TheJulia): Explicitly set scope enforcement to False until we
|
||||
# remove the legacy policies.
|
||||
IRONIC_ENFORCE_SCOPE: False
|
||||
|
Reference in New Issue
Block a user