plugin/ryu, linux/interface: remove ryu specific interface driver
Implements blueprint ryu-remove-ryu-specific-interface-driver Since Ryu specific interface driver is not needed any more, delete it. Change-Id: Ic3336e8aac3076ddc949044d7ff25608bb7d297f Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
This commit is contained in:
parent
719e67b633
commit
8b482d7d96
@ -39,9 +39,6 @@ OPTS = [
|
|||||||
help='Uses veth for an interface or not'),
|
help='Uses veth for an interface or not'),
|
||||||
cfg.StrOpt('network_device_mtu',
|
cfg.StrOpt('network_device_mtu',
|
||||||
help='MTU setting for device.'),
|
help='MTU setting for device.'),
|
||||||
cfg.StrOpt('ryu_api_host',
|
|
||||||
default='127.0.0.1:8080',
|
|
||||||
help='Openflow Ryu REST API host:port'),
|
|
||||||
cfg.StrOpt('meta_flavor_driver_mappings',
|
cfg.StrOpt('meta_flavor_driver_mappings',
|
||||||
help='Mapping between flavor and LinuxInterfaceDriver')
|
help='Mapping between flavor and LinuxInterfaceDriver')
|
||||||
]
|
]
|
||||||
@ -244,33 +241,6 @@ class BridgeInterfaceDriver(LinuxInterfaceDriver):
|
|||||||
device_name)
|
device_name)
|
||||||
|
|
||||||
|
|
||||||
class RyuInterfaceDriver(OVSInterfaceDriver):
|
|
||||||
"""Driver for creating a Ryu OVS interface."""
|
|
||||||
|
|
||||||
def __init__(self, conf):
|
|
||||||
super(RyuInterfaceDriver, self).__init__(conf)
|
|
||||||
|
|
||||||
from ryu.app.client import OFPClient
|
|
||||||
LOG.debug('ryu rest host %s', self.conf.ryu_api_host)
|
|
||||||
self.ryu_client = OFPClient(self.conf.ryu_api_host)
|
|
||||||
|
|
||||||
def plug(self, network_id, port_id, device_name, mac_address,
|
|
||||||
bridge=None, namespace=None, prefix=None):
|
|
||||||
"""Plug in the interface."""
|
|
||||||
super(RyuInterfaceDriver, self).plug(network_id, port_id, device_name,
|
|
||||||
mac_address, bridge=bridge,
|
|
||||||
namespace=namespace,
|
|
||||||
prefix=prefix)
|
|
||||||
if not bridge:
|
|
||||||
bridge = self.conf.ovs_integration_bridge
|
|
||||||
|
|
||||||
self.check_bridge_exists(bridge)
|
|
||||||
ovs_br = ovs_lib.OVSBridge(bridge, self.conf.root_helper)
|
|
||||||
datapath_id = ovs_br.get_datapath_id()
|
|
||||||
port_no = ovs_br.get_port_ofport(device_name)
|
|
||||||
self.ryu_client.create_port(network_id, datapath_id, port_no)
|
|
||||||
|
|
||||||
|
|
||||||
class MetaInterfaceDriver(LinuxInterfaceDriver):
|
class MetaInterfaceDriver(LinuxInterfaceDriver):
|
||||||
def __init__(self, conf):
|
def __init__(self, conf):
|
||||||
super(MetaInterfaceDriver, self).__init__(conf)
|
super(MetaInterfaceDriver, self).__init__(conf)
|
||||||
|
@ -351,85 +351,6 @@ class TestBridgeInterfaceDriver(TestBase):
|
|||||||
mock.call().link.delete()])
|
mock.call().link.delete()])
|
||||||
|
|
||||||
|
|
||||||
class TestRyuInterfaceDriver(TestBase):
|
|
||||||
def setUp(self):
|
|
||||||
super(TestRyuInterfaceDriver, self).setUp()
|
|
||||||
self.ryu_mod = mock.Mock()
|
|
||||||
self.ryu_app_mod = self.ryu_mod.app
|
|
||||||
self.ryu_app_client = self.ryu_app_mod.client
|
|
||||||
self.ryu_mod_p = mock.patch.dict('sys.modules',
|
|
||||||
{'ryu': self.ryu_mod,
|
|
||||||
'ryu.app': self.ryu_app_mod,
|
|
||||||
'ryu.app.client':
|
|
||||||
self.ryu_app_client})
|
|
||||||
self.ryu_mod_p.start()
|
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
self.ryu_mod_p.stop()
|
|
||||||
super(TestRyuInterfaceDriver, self).tearDown()
|
|
||||||
|
|
||||||
def test_plug_no_ns(self):
|
|
||||||
self._test_plug()
|
|
||||||
|
|
||||||
def test_plug_with_ns(self):
|
|
||||||
self._test_plug(namespace='01234567-1234-1234-99')
|
|
||||||
|
|
||||||
def test_plug_alt_bridge(self):
|
|
||||||
self._test_plug(bridge='br-foo')
|
|
||||||
|
|
||||||
def _test_plug(self, namespace=None, bridge=None):
|
|
||||||
if not bridge:
|
|
||||||
bridge = 'br-int'
|
|
||||||
|
|
||||||
def _device_exists(dev, root_helper=None, namespace=None):
|
|
||||||
return dev == bridge
|
|
||||||
|
|
||||||
vsctl_cmd_plug = ['ovs-vsctl', '--', '--may-exist', 'add-port',
|
|
||||||
bridge, 'tap0', '--', 'set', 'Interface', 'tap0',
|
|
||||||
'type=internal', '--', 'set', 'Interface', 'tap0',
|
|
||||||
'external-ids:iface-id=port-1234', '--', 'set',
|
|
||||||
'Interface', 'tap0',
|
|
||||||
'external-ids:iface-status=active', '--', 'set',
|
|
||||||
'Interface', 'tap0',
|
|
||||||
'external-ids:attached-mac=aa:bb:cc:dd:ee:ff']
|
|
||||||
vsctl_cmd_ofport = ['ovs-vsctl', '--timeout=2',
|
|
||||||
'get', 'Interface', 'tap0', 'ofport']
|
|
||||||
vsctl_cmd_dp = ['ovs-vsctl', '--timeout=2',
|
|
||||||
'get', 'Bridge', bridge, 'datapath_id']
|
|
||||||
|
|
||||||
with mock.patch.object(utils, 'execute') as execute:
|
|
||||||
self.device_exists.side_effect = _device_exists
|
|
||||||
ryu = interface.RyuInterfaceDriver(self.conf)
|
|
||||||
|
|
||||||
ryu.plug('01234567-1234-1234-99',
|
|
||||||
'port-1234',
|
|
||||||
'tap0',
|
|
||||||
'aa:bb:cc:dd:ee:ff',
|
|
||||||
bridge=bridge,
|
|
||||||
namespace=namespace)
|
|
||||||
|
|
||||||
execute.assert_has_calls([mock.call(vsctl_cmd_dp,
|
|
||||||
root_helper='sudo')])
|
|
||||||
execute.assert_has_calls([mock.call(vsctl_cmd_plug, 'sudo')])
|
|
||||||
execute.assert_has_calls([mock.call(vsctl_cmd_ofport,
|
|
||||||
root_helper='sudo')])
|
|
||||||
|
|
||||||
self.ryu_app_client.OFPClient.assert_called_once_with('127.0.0.1:8080')
|
|
||||||
|
|
||||||
expected = [
|
|
||||||
mock.call('sudo'),
|
|
||||||
mock.call().device('tap0'),
|
|
||||||
mock.call().device().link.set_address('aa:bb:cc:dd:ee:ff')]
|
|
||||||
if namespace:
|
|
||||||
expected.extend([
|
|
||||||
mock.call().ensure_namespace(namespace),
|
|
||||||
mock.call().ensure_namespace().add_device_to_namespace(
|
|
||||||
mock.ANY)])
|
|
||||||
expected.extend([mock.call().device().link.set_up()])
|
|
||||||
|
|
||||||
self.ip.assert_has_calls(expected)
|
|
||||||
|
|
||||||
|
|
||||||
class TestMetaInterfaceDriver(TestBase):
|
class TestMetaInterfaceDriver(TestBase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestMetaInterfaceDriver, self).setUp()
|
super(TestMetaInterfaceDriver, self).setUp()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user