heatclient.common.http.SessionClient
automatically json.dumps the data in kwargs.
If we json dump ourselves we end up double-decoding
which is invalid.
heatclient.common.http.py:
class SessionClient(adapter.LegacyJsonAdapter):
"""HTTP client based on Keystone client session."""
def request(self, url, method, **kwargs):
redirect = kwargs.get('redirect')
kwargs.setdefault('user_agent', USER_AGENT)
if 'data' in kwargs:
kwargs['data'] = jsonutils.dumps(kwargs['data'])
kwargs['data'] includes the template,
so this is double-decoding in JSON
JIRA: YARDSTICK-584
Change-Id: I663af42f7e92e285b540b614ceda87f17da5f22d
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
import heatclient
import pkg_resources
-from oslo_serialization import jsonutils
from oslo_utils import encodeutils
import yardstick.common.openstack_utils as op_utils
stack = HeatStack(self.name)
heat = self._get_heat_client()
- json_template = jsonutils.dump_as_bytes(
- self._template)
start_time = time.time()
stack.uuid = self.uuid = heat.stacks.create(
- stack_name=self.name, template=json_template,
+ stack_name=self.name, template=self._template,
parameters=self.heat_parameters)['stack']['id']
status = self.status()