Bugfix: Local Openstack Operation in HA test frameworks
[yardstick.git] / yardstick / benchmark / scenarios / availability / util.py
index 2addef8..eadbfa5 100644 (file)
@@ -6,14 +6,35 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
+import logging
+import subprocess
+import traceback
 
+LOG = logging.getLogger(__name__)
 
-def buildshellparams(param):
+
+def buildshellparams(param, remote=True):
     i = 0
     values = []
-    result = '/bin/bash -s'
+    result = '/bin/bash -s' if remote else ''
     for key in param.keys():
         values.append(param[key])
         result += " {%d}" % i
         i = i + 1
     return result
+
+
+def execute_shell_command(command):
+    """execute shell script with error handling"""
+    exitcode = 0
+    output = []
+    try:
+        LOG.debug("the command is: %s", command)
+        output = subprocess.check_output(command, shell=True)
+    except Exception:
+        exitcode = -1
+        output = traceback.format_exc()
+        LOG.error("exec command '%s' error:\n ", command)
+        LOG.error(traceback.format_exc())
+
+    return exitcode, output