16
16
from oslo.config import cfg
18
from neutron import context
18
19
from neutron.extensions import portbindings
20
from neutron.extensions import securitygroup as ext_sg
21
from neutron.plugins.openvswitch import ovs_neutron_plugin
19
22
from neutron.tests.unit import _test_extension_portbindings as test_bindings
20
23
from neutron.tests.unit import test_db_plugin as test_plugin
21
24
from neutron.tests.unit import test_extension_allowedaddresspairs as test_pair
22
25
from neutron.tests.unit import test_security_groups_rpc as test_sg_rpc
25
30
class OpenvswitchPluginV2TestCase(test_plugin.NeutronDbPluginV2TestCase):
86
91
class TestOpenvswitchAllowedAddressPairs(OpenvswitchPluginV2TestCase,
87
92
test_pair.TestAllowedAddressPairs):
96
class TestOpenvswitchUpdatePort(OpenvswitchPluginV2TestCase,
97
ovs_neutron_plugin.OVSNeutronPluginV2):
99
def test_update_port_add_remove_security_group(self):
101
'neutron.db.db_base_plugin_v2.'
102
'NeutronDbPluginV2.get_port'
104
with mock.patch(get_port_func) as mock_get_port:
105
mock_get_port.return_value = {
106
ext_sg.SECURITYGROUPS: ["sg1", "sg2"],
107
"admin_state_up": True,
108
"fixed_ips": "fake_ip",
109
"network_id": "fake_id"}
112
'neutron.db.db_base_plugin_v2.'
113
'NeutronDbPluginV2.update_port'
115
with mock.patch(update_port_func) as mock_update_port:
116
mock_update_port.return_value = {
117
ext_sg.SECURITYGROUPS: ["sg2", "sg3"],
118
"admin_state_up": True,
119
"fixed_ips": "fake_ip",
120
"network_id": "fake_id"}
123
'neutron.plugins.openvswitch.'
124
'ovs_db_v2.get_network_binding'
126
with mock.patch(fake_func) as mock_func:
128
network_type = "fake"
129
segmentation_id = "fake"
130
physical_network = "fake"
132
mock_func.return_value = MockBinding()
134
ctx = context.Context('', 'somebody')
135
self.update_port(ctx, "id", {
137
ext_sg.SECURITYGROUPS: [
140
sgmu = self.notifier.security_groups_member_updated
141
sgmu.assert_called_with(ctx, set(['sg1', 'sg3']))
144
super(TestOpenvswitchUpdatePort, self).setUp()
145
self.update_security_group_on_port = mock.MagicMock(return_value=True)
146
self._process_portbindings_create_and_update = mock.MagicMock(
148
self._update_extra_dhcp_opts_on_port = mock.MagicMock(
150
self.update_address_pairs_on_port = mock.MagicMock(
155
self.port_update = mock.MagicMock(return_value=True)
156
self.security_groups_member_updated = mock.MagicMock(
159
self.notifier = MockNotifier()