From a8f2eaded8486e6107020363acb48c4593ad1047 Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Thu, 23 Mar 2017 09:31:37 +1100 Subject: [PATCH] Capture output in _exec_sudo The stdout of the script is captured, so anything coming out from these commands needs to be captured. Move to check_process and show the output as part of an error log in failure case. Change-Id: I1150375cdc479d4f19b8ddeb49a824ab16fdf831 --- diskimage_builder/block_device/level1/partitioning.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/diskimage_builder/block_device/level1/partitioning.py b/diskimage_builder/block_device/level1/partitioning.py index ea875b4e..28f2a688 100644 --- a/diskimage_builder/block_device/level1/partitioning.py +++ b/diskimage_builder/block_device/level1/partitioning.py @@ -155,11 +155,13 @@ class Partitioning(object): sudo_cmd = ["sudo"] sudo_cmd.extend(cmd) logger.info("Calling [%s]" % " ".join(sudo_cmd)) - subp = subprocess.Popen(sudo_cmd) - rval = subp.wait() - if rval != 0: + # note we supress output, as it is captured + try: + subprocess.check_output(sudo_cmd, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: logger.error("Calling [%s] failed with [%s]" % - (" ".join(sudo_cmd), rval)) + (e.cmd, e.returncode)) + logger.error(e.output) logger.error("Trying to continue") def _all_part_devices_exist(self, expected_part_devices):