from quantum.db import models_v2
from quantum.extensions import l3
from quantum.openstack.common import log as logging
+from quantum.openstack.common.notifier import api as notifier_api
from quantum.openstack.common import uuidutils
from quantum import policy
routers = self.get_sync_data(context.elevated(), [router_id])
l3_rpc_agent_api.L3AgentNofity.routers_updated(context, routers)
- return {'port_id': port['id'],
+ info = {'port_id': port['id'],
'subnet_id': port['fixed_ips'][0]['subnet_id']}
+ notifier_api.notify(context,
+ notifier_api.publisher_id('network'),
+ 'router.interface.create',
+ notifier_api.CONF.default_notification_level,
+ {'router.interface': info})
+ return info
def _confirm_router_interface_not_in_use(self, context, router_id,
subnet_id):
raise q_exc.SubnetMismatchForPort(
port_id=port_id,
subnet_id=interface_info['subnet_id'])
+ subnet_id = port_db['fixed_ips'][0]['subnet_id']
self._confirm_router_interface_not_in_use(
- context, router_id,
- port_db['fixed_ips'][0]['subnet_id'])
+ context, router_id, subnet_id)
self.delete_port(context, port_db['id'], l3_port_check=False)
elif 'subnet_id' in interface_info:
subnet_id = interface_info['subnet_id']
for p in ports:
if p['fixed_ips'][0]['subnet_id'] == subnet_id:
+ port_id = p['id']
self.delete_port(context, p['id'], l3_port_check=False)
found = True
break
subnet_id=subnet_id)
routers = self.get_sync_data(context.elevated(), [router_id])
l3_rpc_agent_api.L3AgentNofity.routers_updated(context, routers)
+ notifier_api.notify(context,
+ notifier_api.publisher_id('network'),
+ 'router.interface.delete',
+ notifier_api.CONF.default_notification_level,
+ {'router.interface':
+ {'port_id': port_id,
+ 'subnet_id': subnet_id}})
def _get_floatingip(self, context, id):
try:
from quantum import manager
from quantum.openstack.common import cfg
from quantum.openstack.common import log as logging
+from quantum.openstack.common.notifier import test_notifier
+from quantum.openstack.common.notifier import api as notifier_api
from quantum.openstack.common import uuidutils
from quantum.tests.unit import test_api_v2
from quantum.tests.unit import test_db_plugin
test_config['extension_manager'] = ext_mgr
super(L3NatDBTestCase, self).setUp()
+ # Set to None to reload the drivers
+ notifier_api._drivers = None
+ cfg.CONF.set_override("notification_driver", [test_notifier.__name__])
+
+ def tearDown(self):
+ test_notifier.NOTIFICATIONS = []
+ super(L3NatDBTestCase, self).tearDown()
+
def _create_router(self, fmt, tenant_id, name=None,
admin_state_up=None, set_context=False):
data = {'router': {'tenant_id': tenant_id}}
body = self._show('ports', r_port_id,
expected_code=exc.HTTPNotFound.code)
+ self.assertEqual(len(test_notifier.NOTIFICATIONS), 8)
+ self.assertEqual(
+ set(n['event_type'] for n in test_notifier.NOTIFICATIONS),
+ set(['router.create.start',
+ 'router.create.end',
+ 'network.create.start',
+ 'network.create.end',
+ 'subnet.create.start',
+ 'subnet.create.end',
+ 'router.interface.create',
+ 'router.interface.delete']))
+
def test_router_add_interface_subnet_with_bad_tenant_returns_404(self):
with mock.patch('quantum.context.Context.to_dict') as tdict:
tenant_id = _uuid()