+"""
+Various smaller helps for step execution.
+"""
+import logging
+import subprocess
+
+LOG = logging.getLogger(__name__)
+
+def run_script(cmd, **kwargs):
+ """ Run the given command, check that it is successful and output
+ when necessary.
+ """
+ proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
+ **kwargs)
+ (outp, outerr) = proc.communicate()
+ outp = outp.decode('utf-8')
+ outerr = outerr.decode('utf-8').replace('\\n', '\n')
+ LOG.debug("Run command: %s\n%s\n%s", cmd, outp, outerr)
+
+ assert proc.returncode == 0, "Script '{}' failed:\n{}\n{}\n".format(cmd[0], outp, outerr)
+
+ return outp, outerr