@classmethod
def get_namespaces(cls):
output = cls._execute([], 'netns', ('list',))
- return [l.strip() for l in output.split('\n')]
+ return [l.split()[0] for l in output.splitlines()]
class IPDevice(SubProcessBase):
output = self._parent._execute(
['o'], 'netns', ['list'],
run_as_root=cfg.CONF.AGENT.use_helper_for_ns_read)
- for line in output.split('\n'):
- if name == line.strip():
+ for line in [l.split()[0] for l in output.splitlines()]:
+ if name == line:
return True
return False
get_ns_name = mock.patch.object(
namespaces.RouterNamespace, '_get_ns_name').start()
get_ns_name.return_value = "%s%s%s" % (
- namespaces.RouterNamespace._get_ns_name(router_info['id']),
+ 'qrouter-' + router_info['id'],
self.NESTED_NAMESPACE_SEPARATOR, self.agent.host)
router1 = self.manage_router(self.agent, router_info)
'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb',
'cccccccc-cccc-cccc-cccc-cccccccccccc']
+NETNS_SAMPLE_IPROUTE2_4 = [
+ '12345678-1234-5678-abcd-1234567890ab (id: 1)',
+ 'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb (id: 0)',
+ 'cccccccc-cccc-cccc-cccc-cccccccccccc (id: 2)']
+
LINK_SAMPLE = [
'1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN \\'
'link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0',
self.execute.assert_called_once_with([], 'netns', ('list',))
+ def test_get_namespaces_iproute2_4(self):
+ self.execute.return_value = '\n'.join(NETNS_SAMPLE_IPROUTE2_4)
+ retval = ip_lib.IPWrapper.get_namespaces()
+ self.assertEqual(retval,
+ ['12345678-1234-5678-abcd-1234567890ab',
+ 'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb',
+ 'cccccccc-cccc-cccc-cccc-cccccccccccc'])
+
+ self.execute.assert_called_once_with([], 'netns', ('list',))
+
def test_add_tuntap(self):
ip_lib.IPWrapper().add_tuntap('tap0')
self.execute.assert_called_once_with([], 'tuntap',