Add helper to find string in console 47/60247/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Sun, 22 Jul 2018 09:55:31 +0000 (11:55 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Thu, 26 Jul 2018 19:48:33 +0000 (21:48 +0200)
It allows checking when cloud-init is finished (see heat_ims).

Change-Id: I951aabff29457d7b7544a809f9fce1f83706035e
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit a80ebe8794dd2693203ceea65a13a69dcf508f94)

functest/core/singlevm.py

index f79e3ed..42cb5f5 100644 (file)
@@ -14,6 +14,7 @@ advanced testcases (e.g. deploying an orchestrator).
 """
 
 import logging
+import re
 import tempfile
 import time
 
@@ -154,6 +155,26 @@ class VmReady1(tenantnetwork.TenantNetwork1):
         self.__logger.debug("vm: %s", vm1)
         return vm1
 
+    def check_regex_in_console(self, name, regex=' login: ', loop=1):
+        """Wait for specific message in console
+
+        Returns: True or False on errors
+        """
+        assert self.cloud
+        for iloop in range(loop):
+            console = self.cloud.get_server_console(name)
+            self.__logger.debug("console: \n%s", console)
+            if re.search(regex, console):
+                self.__logger.debug("regex found: ''%s' in console", regex)
+                return True
+            else:
+                self.__logger.debug(
+                    "try %s: cannot find regex '%s' in console",
+                    iloop + 1, regex)
+                time.sleep(10)
+        self.__logger.error("cannot find regex '%s' in console", regex)
+        return False
+
     def run(self, **kwargs):
         """Boot the new VM