ovs: Avoids setting MTU if MTU is None or 0

If the 'mtu' argument is None or 0, it will lead to
errors, as it is not a valid argument.

Skips setting the port's MTU if the given 'mtu' is None
or 0.

Closes-Bug: #1591113

Change-Id: Ia07ade945ca7469b9c23c801a6bfe08135d39466
This commit is contained in:
Claudiu Belu 2016-06-10 01:44:38 +03:00
parent f0b5b4f583
commit 2c96373d5e
2 changed files with 16 additions and 1 deletions

View File

@ -68,7 +68,7 @@ def create_ovs_vif_port(bridge, dev, iface_id, mac, instance_id,
interface_type))
# Note at present there is no support for setting the
# mtu for vhost-user type ports.
if interface_type != constants.OVS_VHOSTUSER_INTERFACE_TYPE:
if mtu and interface_type != constants.OVS_VHOSTUSER_INTERFACE_TYPE:
_set_device_mtu(dev, mtu)
else:
LOG.debug("MTU not set on %(interface_name)s interface "

View File

@ -156,3 +156,18 @@ class LinuxNetTest(testtools.TestCase):
"fake-instance-uuid", constants.OVS_VHOSTUSER_INTERFACE_TYPE)
self.assertFalse(mock_set_device_mtu.called)
self.assertTrue(mock_vsctl.called)
@mock.patch.object(linux_net, '_ovs_vsctl')
@mock.patch.object(linux_net, '_create_ovs_vif_cmd')
@mock.patch.object(linux_net, '_set_device_mtu')
def test_ovs_vif_port_with_no_mtu(self, mock_set_device_mtu,
mock_create_cmd, mock_vsctl):
linux_net.create_ovs_vif_port(
'fake-bridge',
'fake-dev', 'fake-iface-id', 'fake-mac',
"fake-instance-uuid")
mock_create_cmd.assert_called_once_with('fake-bridge',
'fake-dev', 'fake-iface-id', 'fake-mac',
"fake-instance-uuid", None)
self.assertFalse(mock_set_device_mtu.called)
self.assertTrue(mock_vsctl.called)