From 30ce6d920f66571e5199828b66a0fe4dbf25c2c2 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Thu, 6 Mar 2014 15:44:10 +0100 Subject: [PATCH] Python 3: decode bytes before feeding them to jsonutils.loads() urlopen(...).read() returns bytes in Python 3, so we cannot call jsonutils.loads() on the output: we first have to decode() it. Change-Id: I39504059a8c82347476dd88dfcbd060d58df13d0 --- heatclient/v1/shell.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/heatclient/v1/shell.py b/heatclient/v1/shell.py index 1d65c648..cefe3680 100644 --- a/heatclient/v1/shell.py +++ b/heatclient/v1/shell.py @@ -14,6 +14,7 @@ # under the License. import logging +import six from six.moves.urllib import request import yaml @@ -647,6 +648,8 @@ def do_resource_signal(hc, args): data_url = template_utils.normalise_file_path_to_url(data_file) data = request.urlopen(data_url).read() if data: + if isinstance(data, six.binary_type): + data = data.decode('utf-8') try: data = jsonutils.loads(data) except ValueError as ex: