Heat returns Error 400 "Malformed Request" when PKIZ token without catalog is used
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
Medium
|
Drago |
Bug Description
It is impossible to create stack using API call like this:
curl -i -X POST -H 'X-Auth-Token: PKIZ_ROKEN_HERE' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"files": {}, "disable_rollback": true, "parameters": {}, "stack_name": "test_2", "environment": {}, "template": {"heat_
when using PKIZ tokens created with ?nocatalog switch
TRACE from /var/log/
2014-12-17 11:22:32.574 16779 ERROR root [req-8a28b942-
Traceback (most recent call last):
File "/usr/lib/
incoming.
File "/usr/lib/
return self._do_
File "/usr/lib/
result = getattr(endpoint, method)(ctxt, **new_args)
File "/usr/lib/
return func(self, ctx, *args, **kwargs)
File "/usr/lib/
stack.store()
File "/usr/lib/
trust_ctx = keystone.
File "/usr/lib/
trustor_user_id = self.client.
File "/usr/lib/
self._client = self._v3_
File "/usr/lib/
client = kc_v3.Client(
File "/usr/lib/
super(Client, self)._
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
self.auth_url = self.auth_
TypeError: 'NoneType' object is unsubscriptable
Exact same command but with PKIZ token which contains catalog works flawlessly.
We are using trusts for heat:
deferred_
trusts_
I think this is heat issue, because nova works well with tokens without catalog.
description: | updated |
Changed in heat: | |
status: | Fix Committed → Fix Released |
Changed in heat: | |
milestone: | kilo-rc1 → 2015.1.0 |
This is related to the ?nocatalog switch rather than the PKIZ tokens.
keystoneclient is trying to look at the catalog to figure out where to send its requests to - and there isn't one.
?nocatalog is pretty much only useful for auth_token middleware service tokens where they aren't going to have to contact anyone else.