Refresh info_cache after deleting floating IP
When deleting a floating IP associated with Neutron's info_cache we don't
refresh the info_cache after it is deleted.
This patch makes it so the info_cache is refreshed when an associated
floating IP is deleted. If there is no info_cache associated with the
floating IP then info_cache is not refreshed.
Change-Id: I8a8ae8cdbe2d9d77e7f1ae94ebdf6e4ad46eaf00
Closes-Bug: #1614538
(cherry picked from commit cdb9b6820d
)
This commit is contained in:
parent
c8b8365d31
commit
a832e6b2a0
@ -1553,6 +1553,16 @@ class API(base_api.NetworkAPI):
|
|||||||
This api call was added to allow this to be done in one operation
|
This api call was added to allow this to be done in one operation
|
||||||
if using neutron.
|
if using neutron.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@base_api.refresh_cache
|
||||||
|
def _release_floating_ip_and_refresh_cache(self, context, instance,
|
||||||
|
floating_ip):
|
||||||
|
self._release_floating_ip(context, floating_ip['address'],
|
||||||
|
raise_if_associated=False)
|
||||||
|
if instance:
|
||||||
|
_release_floating_ip_and_refresh_cache(self, context, instance,
|
||||||
|
floating_ip)
|
||||||
|
else:
|
||||||
self._release_floating_ip(context, floating_ip['address'],
|
self._release_floating_ip(context, floating_ip['address'],
|
||||||
raise_if_associated=False)
|
raise_if_associated=False)
|
||||||
|
|
||||||
|
@ -2275,6 +2275,21 @@ class TestNeutronv2(TestNeutronv2Base):
|
|||||||
api.disassociate_and_release_floating_ip(self.context, None,
|
api.disassociate_and_release_floating_ip(self.context, None,
|
||||||
floating_ip)
|
floating_ip)
|
||||||
|
|
||||||
|
def test_disassociate_and_release_floating_ip_with_instance(self):
|
||||||
|
api = neutronapi.API()
|
||||||
|
address = self.fip_unassociated['floating_ip_address']
|
||||||
|
fip_id = self.fip_unassociated['id']
|
||||||
|
floating_ip = {'address': address}
|
||||||
|
instance = self._fake_instance_object(self.instance)
|
||||||
|
|
||||||
|
self.moxed_client.list_floatingips(floating_ip_address=address).\
|
||||||
|
AndReturn({'floatingips': [self.fip_unassociated]})
|
||||||
|
self.moxed_client.delete_floatingip(fip_id)
|
||||||
|
self._setup_mock_for_refresh_cache(api, [instance])
|
||||||
|
self.mox.ReplayAll()
|
||||||
|
api.disassociate_and_release_floating_ip(self.context, instance,
|
||||||
|
floating_ip)
|
||||||
|
|
||||||
def test_release_floating_ip_associated(self):
|
def test_release_floating_ip_associated(self):
|
||||||
api = neutronapi.API()
|
api = neutronapi.API()
|
||||||
address = self.fip_associated['floating_ip_address']
|
address = self.fip_associated['floating_ip_address']
|
||||||
|
Loading…
Reference in New Issue
Block a user