summaryrefslogtreecommitdiffstats
path: root/sdnvpn/lib/utils.py
diff options
context:
space:
mode:
authortomsou <soth@intracom-telecom.com>2017-10-24 17:37:37 +0300
committerThomas Sounapoglou <soth@intracom-telecom.com>2018-01-02 15:34:58 +0000
commitd81779daee14b1567f4f4a0a55509c8ba35909d4 (patch)
tree17a55dc8b69d2df83e44ad89f52a774a16fcc5f3 /sdnvpn/lib/utils.py
parent43ab8814f2ac3e39d7aa96ca2ca23a63fb6d1a27 (diff)
Fix instance boot when metadata exists
The way that a instance is considered as UP is pretty strict and returns ERROR in case of instances with userdata This patch differentiates the instances that are supposed to boot till login prompt and those with userdata parameter JIRA: SDNVPN-177 Change-Id: Ic4755366df006669475c90cc0693ac802256f379 Signed-off-by: tomsou <soth@intracom-telecom.com> (cherry picked from commit a6e207c16430055eba8bcc8586b09a7081db3d04)
Diffstat (limited to 'sdnvpn/lib/utils.py')
-rw-r--r--sdnvpn/lib/utils.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/sdnvpn/lib/utils.py b/sdnvpn/lib/utils.py
index 371f3ed..57cf722 100644
--- a/sdnvpn/lib/utils.py
+++ b/sdnvpn/lib/utils.py
@@ -247,13 +247,10 @@ def get_instance_ip(instance):
return instance_ip
-def wait_for_instance(instance):
- logger.info("Waiting for instance %s to get a DHCP lease and "
- "prompt for login..." % instance.id)
- # The sleep this function replaced waited for 80s
+def wait_for_instance(instance, pattern=".* login:"):
+ logger.info("Waiting for instance %s to boot up" % instance.id)
tries = 40
sleep_time = 2
- pattern = ".* login:"
expected_regex = re.compile(pattern)
console_log = ""
while tries > 0 and not expected_regex.search(console_log):
@@ -262,14 +259,20 @@ def wait_for_instance(instance):
tries -= 1
if not expected_regex.search(console_log):
- logger.error("Instance %s seems not to boot up properly."
+ logger.error("Instance %s does not boot up properly."
% instance.id)
return False
return True
-def wait_for_instances_up(*args):
- check = [wait_for_instance(instance) for instance in args]
+def wait_for_instances_up(*instances):
+ check = [wait_for_instance(instance) for instance in instances]
+ return all(check)
+
+
+def wait_for_instances_get_dhcp(*instances):
+ check = [wait_for_instance(instance, "Lease of .* obtained")
+ for instance in instances]
return all(check)