Merge "Fix 'null' response on router-interface-remove operation"

This commit is contained in:
Jenkins 2013-05-01 19:19:25 +00:00 committed by Gerrit Code Review
commit 5d52674ffb
4 changed files with 26 additions and 7 deletions

View File

@ -457,6 +457,7 @@ class L3_NAT_db_mixin(l3.RouterPluginBase):
'router.interface.delete',
notifier_api.CONF.default_notification_level,
{'router.interface': info})
return info
def _get_floatingip(self, context, id):
try:

View File

@ -869,9 +869,10 @@ class MidonetPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
break
assert found
super(MidonetPluginV2, self).remove_router_interface(
info = super(MidonetPluginV2, self).remove_router_interface(
context, router_id, interface_info)
LOG.debug(_("MidonetPluginV2.remove_router_interface exiting"))
return info
def update_floatingip(self, context, id, floatingip):
LOG.debug(_("MidonetPluginV2.update_floatingip called: id=%(id)s "

View File

@ -1649,9 +1649,8 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
{'port_id': port_id, 'router_id': router_id})
# Finally remove the data from the Quantum DB
# This will also destroy the port on the logical switch
super(NvpPluginV2, self).remove_router_interface(context,
router_id,
interface_info)
info = super(NvpPluginV2, self).remove_router_interface(
context, router_id, interface_info)
# Destroy router port (no need to unplug the attachment)
# FIXME(salvatore-orlando): In case of failures in the Quantum plugin
# this migth leave a dangling port. We perform the operation here
@ -1660,7 +1659,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
LOG.warning(_("Unable to find NVP logical router port for "
"Quantum port id:%s. Was this port ever paired "
"with a logical router?"), port_id)
return
return info
# Ensure the connection to the 'metadata access network'
# is removed (with the network) if this the last subnet
@ -1692,6 +1691,7 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
raise nvp_exc.NvpPluginException(
err_msg=(_("Unable to update logical router"
"on NVP Platform")))
return info
def _retrieve_and_delete_nat_rules(self, floating_ip_address,
internal_ip, router_id,

View File

@ -360,7 +360,8 @@ class L3NatTestCaseMixin(object):
expected_code=expected_code)
def _router_interface_action(self, action, router_id, subnet_id, port_id,
expected_code=exc.HTTPOk.code):
expected_code=exc.HTTPOk.code,
expected_body=None):
interface_data = {}
if subnet_id:
interface_data.update({'subnet_id': subnet_id})
@ -371,7 +372,10 @@ class L3NatTestCaseMixin(object):
"%s_router_interface" % action)
res = req.get_response(self.ext_api)
self.assertEqual(res.status_int, expected_code)
return self.deserialize(self.fmt, res)
response = self.deserialize(self.fmt, res)
if expected_body:
self.assertEqual(response, expected_body)
return response
@contextlib.contextmanager
def router(self, name='router1', admin_state_up=True,
@ -1015,6 +1019,19 @@ class L3NatDBTestCase(L3NatTestCaseBase):
None,
p['port']['id'])
def test_router_remove_interface_returns_200(self):
with self.router() as r:
with self.port(no_delete=True) as p:
body = self._router_interface_action('add',
r['router']['id'],
None,
p['port']['id'])
self._router_interface_action('remove',
r['router']['id'],
None,
p['port']['id'],
expected_body=body)
def test_router_remove_interface_wrong_port_returns_404(self):
with self.router() as r:
with self.subnet():