Merge "Big Switch: Send notification after port update"

This commit is contained in:
Jenkins 2014-11-20 18:06:51 +00:00 committed by Gerrit Code Review
commit d28a54e7a2
2 changed files with 19 additions and 2 deletions

View File

@ -787,11 +787,14 @@ class NeutronRestProxyV2(NeutronRestProxyV2Base,
self.servers.rest_update_port(net_tenant_id, self.servers.rest_update_port(net_tenant_id,
new_port["network_id"], new_port["network_id"],
mapped_port) mapped_port)
agent_update_required = self.update_security_group_on_port( need_port_update_notify = self.update_security_group_on_port(
context, port_id, port, orig_port, new_port) context, port_id, port, orig_port, new_port)
agent_update_required |= self.is_security_group_member_updated( need_port_update_notify |= self.is_security_group_member_updated(
context, orig_port, new_port) context, orig_port, new_port)
if need_port_update_notify:
self.notifier.port_update(context, new_port)
# return new_port # return new_port
return new_port return new_port

View File

@ -294,6 +294,20 @@ class TestBigSwitchProxyNetworksV2(test_plugin.TestNetworksV2,
self._get_networks(n['network']['tenant_id'] self._get_networks(n['network']['tenant_id']
)[0]['id']) )[0]['id'])
def test_notify_on_security_group_change(self):
plugin = manager.NeutronManager.get_plugin()
with self.port() as p:
with contextlib.nested(
mock.patch.object(plugin, 'notifier'),
mock.patch.object(plugin, 'is_security_group_member_updated',
return_value=True)
) as (n_mock, s_mock):
# any port update should trigger a notification due to s_mock
data = {'port': {'name': 'aNewName'}}
self.new_update_request(
'ports', data, p['port']['id']).get_response(self.api)
self.assertTrue(n_mock.port_update.called)
class TestBigSwitchProxySubnetsV2(test_plugin.TestSubnetsV2, class TestBigSwitchProxySubnetsV2(test_plugin.TestSubnetsV2,
BigSwitchProxyPluginV2TestCase): BigSwitchProxyPluginV2TestCase):