summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjose.lausuch <jose.lausuch@ericsson.com>2016-09-01 15:03:18 +0200
committerJose Lausuch <jose.lausuch@ericsson.com>2016-09-06 14:26:14 +0000
commite41cfb3059108596e9c6ac4ee1e254f86063f3d2 (patch)
tree396da7941223fce2ab574a3f98252f0aabb5619b
parent2e33009b0db2b01467dedc464b801e6619e5010d (diff)
Add print-to-a-file option when executing a command in functest_utils
Change-Id: I8b91979380d0f4794d5ceaf8edb2a9d80cd7170f Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com> (cherry picked from commit 75479a40514ef2cea93d2ef032e5bfe00f987714)
-rw-r--r--utils/functest_utils.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/utils/functest_utils.py b/utils/functest_utils.py
index 8c5dd835a..644ad1a1b 100644
--- a/utils/functest_utils.py
+++ b/utils/functest_utils.py
@@ -294,7 +294,7 @@ def get_ci_envvars():
def execute_command(cmd, exit_on_error=True, info=False, error_msg="",
- verbose=True):
+ verbose=True, output_file=None):
if not error_msg:
error_msg = ("The command '%s' failed." % cmd)
msg_exec = ("Executing command: '%s'" % cmd)
@@ -305,10 +305,17 @@ def execute_command(cmd, exit_on_error=True, info=False, error_msg="",
logger.debug(msg_exec)
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
+ if output_file:
+ f = open(output_file, "w")
for line in iter(p.stdout.readline, b''):
- line = line.replace('\n', '')
- print line
- sys.stdout.flush()
+ if output_file:
+ f.write(line)
+ else:
+ line = line.replace('\n', '')
+ print line
+ sys.stdout.flush()
+ if output_file:
+ f.close()
p.stdout.close()
returncode = p.wait()
if returncode != 0: