summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Rozet <trozet@redhat.com>2016-09-01 15:05:07 -0400
committerTim Rozet <trozet@redhat.com>2016-09-01 15:05:07 -0400
commitc7effe57d86f77e1d824b9c927d9e8ab70a59695 (patch)
treefb3a33824f507fecf62a8f9460f5f41ff5973b46
parent7b2a2b2410466a61a04ec7b420eabc7e5091d135 (diff)
Fixes cleaning up HA Neutron objects
This fixes a race condition where the cleanup method is trying to remove HA networks, while Neutron is also trying to remove the network - after the HA router is removed. This only applies to installations where Neutron L3 HA is enabled (nosdn cases only). JIRA: FUNCTEST-454 Change-Id: If06b6f6297e99dcce4b0f2aff8ec80b47488ee90 Signed-off-by: Tim Rozet <trozet@redhat.com>
-rwxr-xr-xutils/openstack_clean.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/utils/openstack_clean.py b/utils/openstack_clean.py
index 8aba763ce..3b937c917 100755
--- a/utils/openstack_clean.py
+++ b/utils/openstack_clean.py
@@ -202,9 +202,20 @@ def remove_networks(neutron_client, default_networks, default_routers):
else:
remove_routers(neutron_client, routers, default_routers)
+ # trozet: wait for Neutron to auto-cleanup HA networks when HA router is
+ # deleted
+ time.sleep(5)
+
# remove networks
if network_ids is not None:
for net_id in network_ids:
+ networks = os_utils.get_network_list(neutron_client)
+ if networks is None:
+ logger.debug("No networks left to remove")
+ break
+ elif not any(network['id'] == net_id for network in networks):
+ logger.debug("Network %s has already been removed" % net_id)
+ continue
logger.debug("Removing network %s ..." % net_id)
if os_utils.delete_neutron_net(neutron_client, net_id):
logger.debug(" > Done!")