From 3246c85763d5cdebb3e240fcd5ae29834cbf6299 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Fri, 23 Jan 2015 15:34:56 -0500 Subject: * Fix the filter() imports. * In Py3, pass universal_newlines to subprocess.Popen() --- cloudinit/util.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'cloudinit/util.py') diff --git a/cloudinit/util.py b/cloudinit/util.py index 94fd5c70..25c104c7 100644 --- a/cloudinit/util.py +++ b/cloudinit/util.py @@ -1589,9 +1589,12 @@ def subp(args, data=None, rcs=None, env=None, capture=True, shell=False, stdout = subprocess.PIPE stderr = subprocess.PIPE stdin = subprocess.PIPE - sp = subprocess.Popen(args, stdout=stdout, - stderr=stderr, stdin=stdin, - env=env, shell=shell) + kws = dict(stdout=stdout, stderr=stderr, stdin=stdin, + env=env, shell=shell) + if six.PY3: + # Use this so subprocess output will be (Python 3) str, not bytes. + kws['universal_newlines'] = True + sp = subprocess.Popen(args, **kws) (out, err) = sp.communicate(data) except OSError as e: raise ProcessExecutionError(cmd=args, reason=e) -- cgit v1.2.3