Merge "Fix 'null' response on router-interface-remove operation"
This commit is contained in:
commit
5d52674ffb
@ -457,6 +457,7 @@ class L3_NAT_db_mixin(l3.RouterPluginBase):
|
|||||||
'router.interface.delete',
|
'router.interface.delete',
|
||||||
notifier_api.CONF.default_notification_level,
|
notifier_api.CONF.default_notification_level,
|
||||||
{'router.interface': info})
|
{'router.interface': info})
|
||||||
|
return info
|
||||||
|
|
||||||
def _get_floatingip(self, context, id):
|
def _get_floatingip(self, context, id):
|
||||||
try:
|
try:
|
||||||
|
@ -869,9 +869,10 @@ class MidonetPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
|
|||||||
break
|
break
|
||||||
assert found
|
assert found
|
||||||
|
|
||||||
super(MidonetPluginV2, self).remove_router_interface(
|
info = super(MidonetPluginV2, self).remove_router_interface(
|
||||||
context, router_id, interface_info)
|
context, router_id, interface_info)
|
||||||
LOG.debug(_("MidonetPluginV2.remove_router_interface exiting"))
|
LOG.debug(_("MidonetPluginV2.remove_router_interface exiting"))
|
||||||
|
return info
|
||||||
|
|
||||||
def update_floatingip(self, context, id, floatingip):
|
def update_floatingip(self, context, id, floatingip):
|
||||||
LOG.debug(_("MidonetPluginV2.update_floatingip called: id=%(id)s "
|
LOG.debug(_("MidonetPluginV2.update_floatingip called: id=%(id)s "
|
||||||
|
@ -1649,9 +1649,8 @@ class NvpPluginV2(db_base_plugin_v2.QuantumDbPluginV2,
|
|||||||
{'port_id': port_id, 'router_id': router_id})
|
{'port_id': port_id, 'router_id': router_id})
|
||||||
# Finally remove the data from the Quantum DB
|
# Finally remove the data from the Quantum DB
|
||||||
# This will also destroy the port on the logical switch
|
# This will also destroy the port on the logical switch
|
||||||
super(NvpPluginV2, self).remove_router_interface(context,
|
info = super(NvpPluginV2, self).remove_router_interface(
|
||||||
router_id,
|
context, router_id, interface_info)
|
||||||
interface_info)
|
|
||||||
# Destroy router port (no need to unplug the attachment)
|
# Destroy router port (no need to unplug the attachment)
|
||||||
# FIXME(salvatore-orlando): In case of failures in the Quantum plugin
|
# FIXME(salvatore-orlando): In case of failures in the Quantum plugin
|
||||||
# this migth leave a dangling port. We perform the operation here
|
# 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 "
|
LOG.warning(_("Unable to find NVP logical router port for "
|
||||||
"Quantum port id:%s. Was this port ever paired "
|
"Quantum port id:%s. Was this port ever paired "
|
||||||
"with a logical router?"), port_id)
|
"with a logical router?"), port_id)
|
||||||
return
|
return info
|
||||||
|
|
||||||
# Ensure the connection to the 'metadata access network'
|
# Ensure the connection to the 'metadata access network'
|
||||||
# is removed (with the network) if this the last subnet
|
# 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(
|
raise nvp_exc.NvpPluginException(
|
||||||
err_msg=(_("Unable to update logical router"
|
err_msg=(_("Unable to update logical router"
|
||||||
"on NVP Platform")))
|
"on NVP Platform")))
|
||||||
|
return info
|
||||||
|
|
||||||
def _retrieve_and_delete_nat_rules(self, floating_ip_address,
|
def _retrieve_and_delete_nat_rules(self, floating_ip_address,
|
||||||
internal_ip, router_id,
|
internal_ip, router_id,
|
||||||
|
@ -360,7 +360,8 @@ class L3NatTestCaseMixin(object):
|
|||||||
expected_code=expected_code)
|
expected_code=expected_code)
|
||||||
|
|
||||||
def _router_interface_action(self, action, router_id, subnet_id, port_id,
|
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 = {}
|
interface_data = {}
|
||||||
if subnet_id:
|
if subnet_id:
|
||||||
interface_data.update({'subnet_id': subnet_id})
|
interface_data.update({'subnet_id': subnet_id})
|
||||||
@ -371,7 +372,10 @@ class L3NatTestCaseMixin(object):
|
|||||||
"%s_router_interface" % action)
|
"%s_router_interface" % action)
|
||||||
res = req.get_response(self.ext_api)
|
res = req.get_response(self.ext_api)
|
||||||
self.assertEqual(res.status_int, expected_code)
|
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
|
@contextlib.contextmanager
|
||||||
def router(self, name='router1', admin_state_up=True,
|
def router(self, name='router1', admin_state_up=True,
|
||||||
@ -1015,6 +1019,19 @@ class L3NatDBTestCase(L3NatTestCaseBase):
|
|||||||
None,
|
None,
|
||||||
p['port']['id'])
|
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):
|
def test_router_remove_interface_wrong_port_returns_404(self):
|
||||||
with self.router() as r:
|
with self.router() as r:
|
||||||
with self.subnet():
|
with self.subnet():
|
||||||
|
Loading…
Reference in New Issue
Block a user