330
def pullup_route(self, interface_name):
332
Ensures that the route entry for the interface is before all
333
others on the same subnet.
336
device_route_list_lines = self._run('list', 'proto', 'kernel',
337
'dev', interface_name).split('\n')
338
for device_route_line in device_route_list_lines:
340
subnet = device_route_line.split()[0]
343
subnet_route_list_lines = self._run('list', 'proto', 'kernel',
344
'match', subnet).split('\n')
345
for subnet_route_line in subnet_route_list_lines:
346
i = iter(subnet_route_line.split())
347
while(i.next() != 'dev'):
351
while(i.next() != 'src'):
356
if device != interface_name:
357
device_list.append((device, src))
361
for (device, src) in device_list:
362
self._as_root('del', subnet, 'dev', device)
364
self._as_root('append', subnet, 'proto', 'kernel',
365
'src', src, 'dev', device)
367
self._as_root('append', subnet, 'proto', 'kernel',
331
371
class IpNetnsCommand(IpCommandBase):
332
372
COMMAND = 'netns'