From 68464a4d4d83cc0f7f8759a650dbc366e2decbfb Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Fri, 13 Feb 2026 04:35:56 -0800 Subject: [PATCH 1/2] CI: Temporary setuptools pin Temporarily pin setuptools to an older version. While not great, until we have consensus we're in a not good state for CI. Change-Id: I15cc92846670af80ff487c8035cf2e365437473b Signed-off-by: Julia Kreger (cherry picked from commit 2ccb2635444780f35cf7e67b17215c1361944242) --- tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/tox.ini b/tox.ini index 6f7683d5..e3c265a3 100644 --- a/tox.ini +++ b/tox.ini @@ -35,6 +35,7 @@ deps = bashate~=2.1.0 # Apache-2.0 pycodestyle>=2.0.0,<3.0.0 # MIT doc8~=1.1.0 # Apache-2.0 + setuptools<81.0.0 allowlist_externals = bash {toxinidir}/tools/run_bashate.sh commands = From cca6f54c2cb78c7f125b508b10506975680b43b9 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Wed, 1 Apr 2026 22:35:44 +0200 Subject: [PATCH 2/2] Fix GenericSwitchNotSupported exceptions These exceptions were not instantiated with the correct arguments, leading to a TypeError that was hiding the real issue (lack of support for trunks on ports or bonds). Closes-Bug: #2147055 Change-Id: Ifde3a65cb51a237801c49d4c443f222f320f6274 Signed-off-by: Pierre Riteau (cherry picked from commit eb205914be2801a358ee030f6fe48ad40174aad7) --- networking_generic_switch/generic_switch_mech.py | 9 +++++---- .../tests/unit/test_generic_switch_mech.py | 7 ++++++- ...icswitchnotsupported-exceptions-80fcdcaadb16ca7b.yaml | 7 +++++++ 3 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 releasenotes/notes/fix-genericswitchnotsupported-exceptions-80fcdcaadb16ca7b.yaml diff --git a/networking_generic_switch/generic_switch_mech.py b/networking_generic_switch/generic_switch_mech.py index 13621c21..72303108 100644 --- a/networking_generic_switch/generic_switch_mech.py +++ b/networking_generic_switch/generic_switch_mech.py @@ -394,16 +394,17 @@ def update_port_postcommit(self, context): if (trunk_details and not switch.support_trunk_on_bond_ports): raise ngs_exc.GenericSwitchNotSupported( - "Trunks are not supported by " - "networking-generic-switch %s.", - switch.device_name) + feature="trunks", + switch=switch.device_name, + error="Trunks are not supported on bond ports.") switch.plug_bond_to_network(port_id, segmentation_id, **plug_kwargs) else: if trunk_details and not switch.support_trunk_on_ports: raise ngs_exc.GenericSwitchNotSupported( feature="trunks", - switch=switch.device_name) + switch=switch.device_name, + error="Trunks are not supported on ports.") switch.plug_port_to_network(port_id, segmentation_id, **plug_kwargs) LOG.info("Successfully plugged port %(port_id)s in segment " diff --git a/networking_generic_switch/tests/unit/test_generic_switch_mech.py b/networking_generic_switch/tests/unit/test_generic_switch_mech.py index 2f946b0c..05c616bb 100644 --- a/networking_generic_switch/tests/unit/test_generic_switch_mech.py +++ b/networking_generic_switch/tests/unit/test_generic_switch_mech.py @@ -854,7 +854,12 @@ def test_update_port_postcommit_trunk_not_supported(self, m_pc, m_list): self.switch_mock.support_trunk_on_bond_ports = False self.switch_mock.support_trunk_on_ports = False - with self.assertRaises(exceptions.GenericSwitchNotSupported): + exception_regex = ( + 'Requested feature trunks is not supported by ' + 'networking-generic-switch on the .*. Trunks are not supported on ' + 'ports.') + with self.assertRaisesRegex(exceptions.GenericSwitchNotSupported, + exception_regex): driver.update_port_postcommit(mock_context) self.switch_mock.plug_port_to_network.assert_not_called() m_pc.assert_not_called() diff --git a/releasenotes/notes/fix-genericswitchnotsupported-exceptions-80fcdcaadb16ca7b.yaml b/releasenotes/notes/fix-genericswitchnotsupported-exceptions-80fcdcaadb16ca7b.yaml new file mode 100644 index 00000000..90b6d0c2 --- /dev/null +++ b/releasenotes/notes/fix-genericswitchnotsupported-exceptions-80fcdcaadb16ca7b.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Fixes incorrect instantiations of GenericSwitchNotSupported exceptions. See + `LP#2147055 + `__ for + details.