From 197955ea99e18e8c98684668105660c696d91f9f Mon Sep 17 00:00:00 2001 From: benopen <16732494+wallecan@users.noreply.github.com> Date: Tue, 9 Oct 2018 15:39:32 +0200 Subject: [PATCH] Do not decode response data in Python2 response data is already str in Python2 so it doesn't need to be decoded. Furthermore, as decode() uses ascii by default in PY2, it breaks in case of a non-ascii character the response. Just mimic what kubernetes do in https://github.com/kubernetes-client/python/blob/master/kubernetes/client/rest.py#L216 Fix #224 --- openshift/dynamic/client.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openshift/dynamic/client.py b/openshift/dynamic/client.py index d2b9f533..7e1c5f46 100755 --- a/openshift/dynamic/client.py +++ b/openshift/dynamic/client.py @@ -3,6 +3,7 @@ import sys import json from functools import partial +from six import PY2 import yaml from pprint import pformat @@ -41,10 +42,14 @@ def serialize(resource, response): try: return ResourceInstance(resource, load_json(response)) except ValueError: - return response.data.decode() + if PY2: + return response.data + return response.data.decode('utf8') def load_json(response): - return json.loads(response.data.decode()) + if PY2: + return json.loads(response.data) + return json.loads(response.data.decode('utf8')) class DynamicClient(object):