diff options
author | Leo Wang <grakiss.wanglei@huawei.com> | 2016-09-17 23:15:18 -0400 |
---|---|---|
committer | Leo Wang <grakiss.wanglei@huawei.com> | 2016-09-20 02:39:46 -0400 |
commit | cb55f6dbfe4867e4d232f51b5a32764f82d2399b (patch) | |
tree | 54cf76d8595b33f744e3e069b7daa55688d3d097 /scripts/utils/dovetail_utils.py | |
parent | e7316237cc9f5b469c53682af6f57099d42a3279 (diff) |
add prototype of dovetail tool
JIRA: DOVETAIL-12
Change-Id: I1ee120ed8199589e1e7cbce9cbb55036e9e5f7ea
Signed-off-by: Leo Wang <grakiss.wanglei@huawei.com>
Diffstat (limited to 'scripts/utils/dovetail_utils.py')
-rw-r--r-- | scripts/utils/dovetail_utils.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/scripts/utils/dovetail_utils.py b/scripts/utils/dovetail_utils.py new file mode 100644 index 00000000..f79c6fc4 --- /dev/null +++ b/scripts/utils/dovetail_utils.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python +# +# jose.lausuch@ericsson.com +# valentin.boucher@orange.com +# grakiss.wanglei@huawei.com +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +# + +import sys +import subprocess + +def exec_cmd(cmd, logger=None, + exit_on_error=True, + info=False, + error_msg="", + verbose=True): + if not error_msg: + error_msg = ("The command '%s' failed." % cmd) + msg_exec = ("Executing command: '%s'" % cmd) + if verbose: + if logger: + if info: + logger.info(msg_exec) + else: + logger.debug(msg_exec) + else: + print(msg_exec) + p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + output = p.communicate() + for line in output[0].strip().split('\n'): + line = line.replace('\n', '') + if logger: + if info: + logger.info(line) + else: + logger.debug(line) + else: + print line + sys.stdout.flush() + + returncode = p.returncode + if returncode != 0: + if verbose: + if logger: + logger.error(error_msg) + else: + print(error_msg) + if exit_on_error: + sys.exit(1) + + return returncode, output[0].strip() + |