Merge "Fixes for py35"
diff --git a/barbican_tempest_plugin/services/key_manager/json/consumer_client.py b/barbican_tempest_plugin/services/key_manager/json/consumer_client.py
index e76400a..e0ed5a5 100644
--- a/barbican_tempest_plugin/services/key_manager/json/consumer_client.py
+++ b/barbican_tempest_plugin/services/key_manager/json/consumer_client.py
@@ -32,18 +32,18 @@
 
         response, body = self.get(uri)
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def add_consumer_to_container(self, container_id, **kwargs):
         uri = "/v1/containers/%s/consumers" % container_id
 
         response, body = self.post(uri, json.dumps(kwargs))
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def delete_consumer_from_container(self, container_id, **kwargs):
         uri = "/v1/containers/%s/consumers" % container_id
 
         response, body = self.delete(uri, body=json.dumps(kwargs))
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
diff --git a/barbican_tempest_plugin/services/key_manager/json/container_client.py b/barbican_tempest_plugin/services/key_manager/json/container_client.py
index ebae08e..7bacf03 100644
--- a/barbican_tempest_plugin/services/key_manager/json/container_client.py
+++ b/barbican_tempest_plugin/services/key_manager/json/container_client.py
@@ -32,21 +32,21 @@
 
         response, body = self.get(uri)
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def get_container(self, container_id):
         uri = "v1/containers/%s" % container_id
 
         response, body = self.get(uri)
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def create_container(self, **kwargs):
         uri = "v1/containers"
 
         response, body = self.post(uri, json.dumps(kwargs))
         self.expected_success(201, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def delete_container(self, container_id):
         uri = "v1/containers/%s" % container_id
@@ -67,7 +67,7 @@
             json.dumps(kwargs)
         )
         self.expected_success(201, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def delete_secret_from_container(self, container_id, secret_id, **kwargs):
         uri = "v1/containers/%s/secrets" % container_id
diff --git a/barbican_tempest_plugin/services/key_manager/json/order_client.py b/barbican_tempest_plugin/services/key_manager/json/order_client.py
index ba0ce51..85455b7 100644
--- a/barbican_tempest_plugin/services/key_manager/json/order_client.py
+++ b/barbican_tempest_plugin/services/key_manager/json/order_client.py
@@ -32,21 +32,21 @@
 
         response, body = self.get(uri)
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def create_order(self, **kwargs):
         uri = "/v1/orders"
 
         response, body = self.post(uri, json.dumps(kwargs))
         self.expected_success(202, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def get_order(self, order_id):
         uri = "v1/orders/%s" % order_id
 
         response, body = self.get(uri)
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def delete_order(self, order_id):
         uri = "/v1/orders/%s" % order_id
diff --git a/barbican_tempest_plugin/services/key_manager/json/quota_client.py b/barbican_tempest_plugin/services/key_manager/json/quota_client.py
index 2f90546..f874648 100644
--- a/barbican_tempest_plugin/services/key_manager/json/quota_client.py
+++ b/barbican_tempest_plugin/services/key_manager/json/quota_client.py
@@ -32,21 +32,21 @@
 
         response, body = self.get(uri)
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def get_default_project_quota(self):
         uri = "v1/quotas"
 
         response, body = self.get(uri)
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def get_project_quota(self, project_id):
         uri = "v1/project-quotas/%s" % project_id
 
         response, body = self.get(uri)
         self.expected_success(200, response.status)
-        return json.loads(body)
+        return json.loads(body.decode("utf-8"))
 
     def create_project_quota(self, project_id, **kwargs):
         uri = "v1/project-quotas/%s" % project_id
diff --git a/barbican_tempest_plugin/services/key_manager/json/secret_client.py b/barbican_tempest_plugin/services/key_manager/json/secret_client.py
index 0402eef..4958c25 100644
--- a/barbican_tempest_plugin/services/key_manager/json/secret_client.py
+++ b/barbican_tempest_plugin/services/key_manager/json/secret_client.py
@@ -15,6 +15,7 @@
 
 
 import json
+import six
 
 from tempest import config
 from tempest.lib.common import rest_client
@@ -28,6 +29,9 @@
         if 'name' not in kwargs:
             kwargs['name'] = data_utils.rand_name("tempest-sec")
 
+        if 'payload' in kwargs and type(kwargs['payload']) is six.binary_type:
+            kwargs['payload'] = kwargs['payload'].decode('utf-8')
+
         post_body = kwargs
         body = json.dumps(post_body)
         resp, body = self.post("v1/secrets", body)