From 7ecd0fa1a10dc87df248095888948fcec27c1c0d Mon Sep 17 00:00:00 2001 From: Tom Stappaerts Date: Tue, 15 Oct 2019 10:58:46 +0200 Subject: [PATCH] Check mtu on network update When creating a network the mtu of the network is checked against the maximum mtu value. This should also be done on network update. Change-Id: Ie7ea79cb753f360bb0bca7df8484710b5d32ccf7 Closes-Bug: #1848152 (cherry picked from commit f711090ed3d9b6c449a4fbc8ffe2eac7df6da193) --- neutron/plugins/ml2/plugin.py | 3 +-- neutron/tests/fullstack/test_mtu.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/neutron/plugins/ml2/plugin.py b/neutron/plugins/ml2/plugin.py index a7bae7a624c..99deb931423 100644 --- a/neutron/plugins/ml2/plugin.py +++ b/neutron/plugins/ml2/plugin.py @@ -1054,8 +1054,7 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2, # removed in Queens when we populate all mtu attributes and # enforce it's not nullable on database level db_network.mtu is None): - db_network.mtu = self._get_network_mtu(db_network, - validate=False) + db_network.mtu = self._get_network_mtu(db_network) # agents should now update all ports to reflect new MTU need_network_update_notify = True diff --git a/neutron/tests/fullstack/test_mtu.py b/neutron/tests/fullstack/test_mtu.py index 87604b3015c..0333e109d5a 100644 --- a/neutron/tests/fullstack/test_mtu.py +++ b/neutron/tests/fullstack/test_mtu.py @@ -12,7 +12,7 @@ # License for the specific language governing permissions and limitations # under the License. -# from neutronclient.common import exceptions +from neutronclient.common import exceptions from oslo_utils import uuidutils from neutron.tests.fullstack import base @@ -44,11 +44,19 @@ class MTUNetworkTestSetup(base.BaseFullStackTestCase): class TestMTUScenarios(MTUNetworkTestSetup): - def test_mtu_update_delete_network(self): + def test_mtu_update_network_neg(self): network = self.safe_client.create_network(self.tenant_id, name='mtu-test-network', mtu=1450) - self.safe_client.update_network(network['id'], mtu=9000) + self.assertRaises(exceptions.BadRequest, + self.safe_client.update_network, + network['id'], mtu=9000) + + def test_mtu_update_delete_network(self): + network = self.safe_client.create_network(self.tenant_id, + name='mtu-test-network', + mtu=1200) + self.safe_client.update_network(network['id'], mtu=1450) res = self.safe_client.delete_network(network['id']) self.assertEqual((), res)