summaryrefslogtreecommitdiffstats
path: root/sdnvpn/lib/utils.py
diff options
context:
space:
mode:
authorStamatis Katsaounis <mokats@intracom-telecom.com>2018-09-10 11:11:49 +0300
committerStamatis Katsaounis <mokats@intracom-telecom.com>2018-10-09 13:44:16 +0300
commit9f606df245967e2a658b0cc75ba9b754175cbf21 (patch)
treed25cb34ac50877dcf5ae2aa472bf8556532f32db /sdnvpn/lib/utils.py
parent490a2fde01b667e4a2a9133ab71cf026f1b9ba0e (diff)
Wait for instance deletionstable/fraser
JIRA: SDNVPN-222 Confirm the deletion of instance in order to prevent its port existence when trying to delete relevant subnet in a later stage. Change-Id: Iace0fbbd90d50f05764ac09682caae59baba22fa Signed-off-by: Stamatis Katsaounis <mokats@intracom-telecom.com> (cherry picked from commit ea48239f99fdddd703bebb1727575f844c097702)
Diffstat (limited to 'sdnvpn/lib/utils.py')
-rw-r--r--sdnvpn/lib/utils.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/sdnvpn/lib/utils.py b/sdnvpn/lib/utils.py
index 33ff594..cc4a51c 100644
--- a/sdnvpn/lib/utils.py
+++ b/sdnvpn/lib/utils.py
@@ -369,6 +369,21 @@ def async_Wait_for_instances(instances, tries=40):
logger.error("one or more instances is not yet booted up")
+def wait_for_instance_delete(nova_client, instance_id, tries=30):
+ sleep_time = 2
+ instances = [instance_id]
+ logger.debug("Waiting for instance %s to be deleted"
+ % (instance_id))
+ while tries > 0 and instance_id in instances:
+ instances = [instance.id for instance in
+ os_utils.get_instances(nova_client)]
+ time.sleep(sleep_time)
+ tries -= 1
+ if instance_id in instances:
+ logger.error("Deletion of instance %s failed" %
+ (instance_id))
+
+
def wait_for_bgp_net_assoc(neutron_client, bgpvpn_id, net_id):
tries = 30
sleep_time = 1
@@ -700,7 +715,8 @@ def cleanup_nova(nova_client, instance_ids, flavor_ids=None):
logger.error('Fail to delete all instances. '
'Instance with id {} was not deleted.'.
format(instance_id))
- return False
+ else:
+ wait_for_instance_delete(nova_client, instance_id)
return True