def test_unplug_device_ovs_port(self):
        conf = mock.Mock()
        conf.ovs_integration_bridge = "br-int"

        device = mock.Mock()
        device.name = "tap1"
        device.link.delete.side_effect = RuntimeError

        with mock.patch("quantum.agent.linux.ovs_lib.OVSBridge") as ovs_br_cls:
            br_patch = mock.patch("quantum.agent.linux.ovs_lib.get_bridge_for_iface")
            with br_patch as mock_get_bridge_for_iface:
                mock_get_bridge_for_iface.return_value = "br-int"
                ovs_bridge = mock.Mock()
                ovs_br_cls.return_value = ovs_bridge

                util.unplug_device(conf, device)

                mock_get_bridge_for_iface.assert_called_once_with(conf.AGENT.root_helper, "tap1")
                ovs_br_cls.called_once_with("br-int", conf.AGENT.root_helper)
                ovs_bridge.assert_has_calls([mock.call.delete_port(device.name)])
    def test_unplug_device_cannot_determine_bridge_port(self):
        conf = mock.Mock()
        conf.ovs_integration_bridge = "br-int"

        device = mock.Mock()
        device.name = "tap1"
        device.link.delete.side_effect = RuntimeError

        with mock.patch("quantum.agent.linux.ovs_lib.OVSBridge") as ovs_br_cls:
            br_patch = mock.patch("quantum.agent.linux.ovs_lib.get_bridge_for_iface")
            with br_patch as mock_get_bridge_for_iface:
                with mock.patch.object(util.LOG, "debug") as debug:
                    mock_get_bridge_for_iface.return_value = None
                    ovs_bridge = mock.Mock()
                    ovs_br_cls.return_value = ovs_bridge

                    util.unplug_device(conf, device)

                    mock_get_bridge_for_iface.assert_called_once_with(conf.AGENT.root_helper, "tap1")
                    self.assertEqual(ovs_br_cls.mock_calls, [])
                    self.assertTrue(debug.called)
    def test_unplug_device_ovs_port(self):
        conf = mock.Mock()
        conf.ovs_integration_bridge = 'br-int'

        device = mock.Mock()
        device.name = 'tap1'
        device.link.delete.side_effect = RuntimeError

        with mock.patch('quantum.agent.linux.ovs_lib.OVSBridge') as ovs_br_cls:
            br_patch = mock.patch(
                'quantum.agent.linux.ovs_lib.get_bridge_for_iface')
            with br_patch as mock_get_bridge_for_iface:
                mock_get_bridge_for_iface.return_value = 'br-int'
                ovs_bridge = mock.Mock()
                ovs_br_cls.return_value = ovs_bridge

                util.unplug_device(conf, device)

                mock_get_bridge_for_iface.assert_called_once_with(
                    conf.AGENT.root_helper, 'tap1')
                ovs_br_cls.called_once_with('br-int', conf.AGENT.root_helper)
                ovs_bridge.assert_has_calls(
                    [mock.call.delete_port(device.name)])
    def test_unplug_device_cannot_determine_bridge_port(self):
        conf = mock.Mock()
        conf.ovs_integration_bridge = 'br-int'

        device = mock.Mock()
        device.name = 'tap1'
        device.link.delete.side_effect = RuntimeError

        with mock.patch('quantum.agent.linux.ovs_lib.OVSBridge') as ovs_br_cls:
            br_patch = mock.patch(
                'quantum.agent.linux.ovs_lib.get_bridge_for_iface')
            with br_patch as mock_get_bridge_for_iface:
                with mock.patch.object(util.LOG, 'debug') as debug:
                    mock_get_bridge_for_iface.return_value = None
                    ovs_bridge = mock.Mock()
                    ovs_br_cls.return_value = ovs_bridge

                    util.unplug_device(conf, device)

                    mock_get_bridge_for_iface.assert_called_once_with(
                        conf.AGENT.root_helper, 'tap1')
                    self.assertEqual(ovs_br_cls.mock_calls, [])
                    self.assertTrue(debug.called)
Beispiel #5
0
    def test_unplug_device_ovs_port(self):
        conf = mock.Mock()
        conf.ovs_integration_bridge = 'br-int'
        conf.root_helper = 'sudo'

        device = mock.Mock()
        device.name = 'tap1'
        device.link.delete.side_effect = RuntimeError

        with mock.patch('quantum.agent.linux.ovs_lib.OVSBridge') as ovs_br_cls:
            br_patch = mock.patch(
                'quantum.agent.linux.ovs_lib.get_bridge_for_iface')
            with br_patch as mock_get_bridge_for_iface:
                mock_get_bridge_for_iface.return_value = 'br-int'
                ovs_bridge = mock.Mock()
                ovs_br_cls.return_value = ovs_bridge

                util.unplug_device(conf, device)

                mock_get_bridge_for_iface.assert_called_once_with(
                    conf.root_helper, 'tap1')
                ovs_br_cls.called_once_with('br-int', 'sudo')
                ovs_bridge.assert_has_calls(
                    [mock.call.delete_port(device.name)])
    def test_unplug_device_regular_device(self):
        conf = mock.Mock()
        device = mock.Mock()

        util.unplug_device(conf, device)
        device.assert_has_calls([mock.call.link.delete()])
    def test_unplug_device_regular_device(self):
        conf = mock.Mock()
        device = mock.Mock()

        util.unplug_device(conf, device)
        device.assert_has_calls([mock.call.link.delete()])