Beispiel #1
0
    def _test_plug(self, namespace=None):
        def device_exists(device, namespace=None):
            return device.startswith('brq')

        root_veth = mock.Mock()
        ns_veth = mock.Mock()

        self.ip().add_veth = mock.Mock(return_value=(root_veth, ns_veth))
        mock.patch.object(interface,
                          '_get_veth',
                          return_value=(root_veth, ns_veth)).start()

        self.device_exists.side_effect = device_exists
        br = interface.BridgeInterfaceDriver(self.conf)
        mac_address = 'aa:bb:cc:dd:ee:ff'
        br.plug('01234567-1234-1234-99',
                'port-1234',
                'ns-0',
                mac_address,
                namespace=namespace,
                mtu=9000)

        ip_calls = [
            mock.call(),
            mock.call().add_veth('tap0', 'ns-0', namespace2=namespace)
        ]
        ns_veth.assert_has_calls([mock.call.link.set_address(mac_address)])
        ns_veth.assert_has_calls([mock.call.link.set_mtu(9000)])
        root_veth.assert_has_calls([mock.call.link.set_mtu(9000)])

        self.ip.assert_has_calls(ip_calls)

        root_veth.assert_has_calls([mock.call.link.set_up()])
        ns_veth.assert_has_calls([mock.call.link.set_up()])
Beispiel #2
0
 def test_unplug_no_device(self):
     self.device_exists.return_value = False
     self.ip_dev().link.delete.side_effect = RuntimeError
     with mock.patch('neutron.agent.linux.interface.LOG') as log:
         br = interface.BridgeInterfaceDriver(self.conf)
         br.unplug('tap0')
         [mock.call(), mock.call('tap0'), mock.call().link.delete()]
         self.assertEqual(log.error.call_count, 1)
Beispiel #3
0
 def test_plug_dev_exists(self):
     self.device_exists.return_value = True
     with mock.patch('neutron.agent.linux.interface.LOG.info') as log:
         br = interface.BridgeInterfaceDriver(self.conf)
         br.plug('01234567-1234-1234-99', 'port-1234', 'tap0',
                 'aa:bb:cc:dd:ee:ff')
         self.assertFalse(self.ip_dev.called)
         self.assertEqual(log.call_count, 1)
    def test_unplug(self):
        self.device_exists.return_value = True
        with mock.patch('neutron.agent.linux.interface.LOG.debug') as log:
            br = interface.BridgeInterfaceDriver(self.conf)
            br.unplug('tap0')
            self.assertEqual(log.call_count, 1)

        self.ip_dev.assert_has_calls([mock.call('tap0', 'sudo', None),
                                      mock.call().link.delete()])
 def __init__(self):
     self.agent_api = None
     self.ovs_api = None
     self.bmv2_api = Bmv2Api()
     bind_opts = [
         cfg.StrOpt('ovs_use_veth',
                    default=True,
                    help=""),
     ]
     interface_config = cfg.ConfigOpts()
     interface_config.register_opts(bind_opts)
     LOG.info("Loading cfg " + str(interface_config))
     self.ovs_interface = interface.OVSInterfaceDriver(interface_config)
     self.bridge_interface = interface.BridgeInterfaceDriver(interface_config)
Beispiel #6
0
 def test_get_device_name(self):
     br = interface.BridgeInterfaceDriver(self.conf)
     device_name = br.get_device_name(FakePort())
     self.assertEqual('ns-abcdef01-12', device_name)
Beispiel #7
0
 def setUp(self):
     super(BridgeInterfaceDriverTestCase, self).setUp()
     conf = cfg.ConfigOpts()
     conf.register_opts(interface.OPTS)
     self.interface = interface.BridgeInterfaceDriver(conf)
     self.bridge = self.useFixture(net_helpers.LinuxBridgeFixture()).bridge