Show real time tempest test execution 35/17135/4
authorjose.lausuch <jose.lausuch@ericsson.com>
Tue, 19 Jul 2016 13:18:28 +0000 (15:18 +0200)
committerjose.lausuch <jose.lausuch@ericsson.com>
Tue, 19 Jul 2016 15:34:41 +0000 (17:34 +0200)
JIRA: FUNCTEST-375

Change-Id: I4f0cb68639b927f2980389d9331ec260605c8caf
Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
testcases/OpenStack/tempest/run_tempest.py
utils/functest_utils.py

index c773091..452e1fd 100755 (executable)
@@ -312,18 +312,35 @@ def run_tempest(OPTION):
     f_env = open(TEMPEST_RESULTS_DIR + "/environment.log", 'w+')
     f_env.write(header)
 
-    subprocess.call(cmd_line, shell=True, stdout=f_stdout, stderr=f_stderr)
+    # subprocess.call(cmd_line, shell=True, stdout=f_stdout, stderr=f_stderr)
+    p = subprocess.Popen(
+        cmd_line, shell=True,
+        stdout=subprocess.PIPE,
+        stderr=f_stderr,
+        bufsize=1)
+
+    with p.stdout:
+        for line in iter(p.stdout.readline, b''):
+            if re.search("\} tempest\.", line):
+                logger.info(line.replace('\n', ''))
+            f_stdout.write(line)
+    p.wait()
 
     f_stdout.close()
     f_stderr.close()
     f_env.close()
 
     cmd_line = "rally verify show"
-    ft_utils.execute_command(cmd_line, logger,
-                             exit_on_error=True, info=True)
+    output = ""
+    p = subprocess.Popen(
+        cmd_line, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+    for line in p.stdout:
+        if re.search("Tests\:", line):
+            break
+        output += line
+    logger.info(output)
 
     cmd_line = "rally verify list"
-    logger.debug('Executing command : {}'.format(cmd_line))
     cmd = os.popen(cmd_line)
     output = (((cmd.read()).splitlines()[-2]).replace(" ", "")).split("|")
     # Format:
index 9a19eb4..b51a1c8 100644 (file)
@@ -244,7 +244,8 @@ def execute_command(cmd, logger=None,
             print(msg_exec)
     p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
     while True:
-        line = p.stdout.readline().replace('\n', '')
+        output = p.stdout.readline()
+        line = output.replace('\n', '')
         if not line:
             break
         if logger: