Merge "Create common method for MTU treatment"

This commit is contained in:
Jenkins
2014-01-24 14:14:19 +00:00
committed by Gerrit Code Review
2 changed files with 30 additions and 16 deletions

View File

@@ -1262,6 +1262,15 @@ def _ip_bridge_cmd(action, params, device):
return cmd
def _set_device_mtu(dev):
"""Set the device MTU."""
if CONF.network_device_mtu:
utils.execute('ip', 'link', 'set', dev, 'mtu',
CONF.network_device_mtu, run_as_root=True,
check_exit_code=[0, 2, 254])
def _create_veth_pair(dev1_name, dev2_name):
"""Create a pair of veth devices with the specified names,
deleting any previous devices with those names.
@@ -1275,10 +1284,7 @@ def _create_veth_pair(dev1_name, dev2_name):
utils.execute('ip', 'link', 'set', dev, 'up', run_as_root=True)
utils.execute('ip', 'link', 'set', dev, 'promisc', 'on',
run_as_root=True)
if CONF.network_device_mtu:
utils.execute('ip', 'link', 'set', dev, 'mtu',
CONF.network_device_mtu, run_as_root=True,
check_exit_code=[0, 2, 254])
_set_device_mtu(dev)
def _ovs_vsctl(args):
@@ -1299,10 +1305,7 @@ def create_ovs_vif_port(bridge, dev, iface_id, mac, instance_id):
'external-ids:iface-status=active',
'external-ids:attached-mac=%s' % mac,
'external-ids:vm-uuid=%s' % instance_id])
if CONF.network_device_mtu:
utils.execute('ip', 'link', 'set', dev, 'mtu',
CONF.network_device_mtu, run_as_root=True,
check_exit_code=[0, 2, 254])
_set_device_mtu(dev)
def delete_ovs_vif_port(bridge, dev):
@@ -1478,10 +1481,7 @@ class LinuxBridgeInterfaceDriver(LinuxNetInterfaceDriver):
check_exit_code=[0, 2, 254])
_execute('ip', 'link', 'set', interface, 'up', run_as_root=True,
check_exit_code=[0, 2, 254])
if CONF.network_device_mtu:
_execute('ip', 'link', 'set', interface, 'mtu',
CONF.network_device_mtu, run_as_root=True,
check_exit_code=[0, 2, 254])
_set_device_mtu(interface)
return interface
@staticmethod
@@ -1731,10 +1731,7 @@ class LinuxOVSInterfaceDriver(LinuxNetInterfaceDriver):
'external-ids:attached-mac=%s' % mac_address])
_execute('ip', 'link', 'set', dev, 'address', mac_address,
run_as_root=True)
if CONF.network_device_mtu:
_execute('ip', 'link', 'set', dev, 'mtu',
CONF.network_device_mtu, run_as_root=True,
check_exit_code=[0, 2, 254])
_set_device_mtu(dev)
_execute('ip', 'link', 'set', dev, 'up', run_as_root=True)
if not gateway:
# If we weren't instructed to act as a gateway then add the

View File

@@ -987,6 +987,23 @@ class LinuxNetworkTestCase(test.NoDBTestCase):
device_exists.assert_has_calls(calls['device_exists'])
_execute.assert_has_calls(calls['_execute'])
def test_set_device_mtu_configured(self):
self.flags(network_device_mtu=10000)
calls = [
mock.call('ip', 'link', 'set', 'fake-dev', 'mtu',
10000, run_as_root=True,
check_exit_code=[0, 2, 254])
]
with mock.patch.object(utils, 'execute', return_value=('', '')) as ex:
linux_net._set_device_mtu('fake-dev')
ex.assert_has_calls(calls)
def test_set_device_mtu_default(self):
calls = []
with mock.patch.object(utils, 'execute', return_value=('', '')) as ex:
linux_net._set_device_mtu('fake-dev')
ex.assert_has_calls(calls)
def _ovs_vif_port(self, calls):
with mock.patch.object(utils, 'execute', return_value=('', '')) as ex:
linux_net.create_ovs_vif_port('fake-bridge', 'fake-dev',