HA template creation fails with AWS auth
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
High
|
Steven Hardy | ||
Grizzly |
Fix Released
|
High
|
Steven Hardy |
Bug Description
Trying to create a stack with the wordpress+HA template fails if you use heat-boto, creating the non-HA templates works fine, looks like part of the resource validation in the engine is expecting keystone credentials:
heat-boto -d create wordpress_ha2 --template-
snip from /var/log/
2012-08-17 15:13:45 INFO [heat.engine.
2012-08-17 15:13:45 INFO [heat.engine.
2012-08-17 15:13:45 INFO [heat.engine.
2012-08-17 15:13:45 INFO [heat.engine.
2012-08-17 15:13:45 ERROR [keystoneclient
Traceback (most recent call last):
File "/usr/lib/
return_
File "/usr/lib/
raise ValueError('A username and password or token is required.')
ValueError: A username and password or token is required.
2012-08-17 15:13:45 ERROR [heat.engine.
Traceback (most recent call last):
File "/usr/lib/
result = res.validate()
File "/usr/lib/
res = super(Instance, self).validate()
File "/usr/lib/
self.
File "/usr/lib/
for p, v in self.parsed_
File "/usr/lib/
return self.stack.
File "/usr/lib/
return resolve_
File "/usr/lib/
template.
File "/usr/lib/
data = t(data)
File "/usr/lib/
return _resolve(lambda k, v: k == 'Fn::GetAtt', handle_getatt, s)
File "/usr/lib/
return dict((k, recurse(v)) for k, v in snippet.items())
File "/usr/lib/
return dict((k, recurse(v)) for k, v in snippet.items())
File "/usr/lib/
recurse = lambda s: _resolve(match, handle, s)
File "/usr/lib/
return dict((k, recurse(v)) for k, v in snippet.items())
File "/usr/lib/
return dict((k, recurse(v)) for k, v in snippet.items())
File "/usr/lib/
recurse = lambda s: _resolve(match, handle, s)
File "/usr/lib/
return dict((k, recurse(v)) for k, v in snippet.items())
File "/usr/lib/
return dict((k, recurse(v)) for k, v in snippet.items())
File "/usr/lib/
recurse = lambda s: _resolve(match, handle, s)
File "/usr/lib/
return [recurse(v) for v in snippet]
File "/usr/lib/
recurse = lambda s: _resolve(match, handle, s)
File "/usr/lib/
return [recurse(v) for v in snippet]
File "/usr/lib/
recurse = lambda s: _resolve(match, handle, s)
File "/usr/lib/
return handle(recurse(v))
File "/usr/lib/
return resources[
File "/usr/lib/
res = self._secret_
File "/usr/lib/
user = self._user_
File "/usr/lib/
users = self.keystone(
File "/usr/lib/
auth_
File "/usr/lib/
self.
File "/usr/lib/
"%s" % e)
AuthorizationFa
Changed in heat: | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in heat: | |
milestone: | none → grizzly-3 |
Changed in heat: | |
assignee: | nobody → Steven Hardy (shardy) |
status: | Triaged → In Progress |
Changed in heat: | |
status: | Fix Committed → Fix Released |
Changed in heat: | |
milestone: | grizzly-3 → 2013.1 |
Updated stack trace, since the code has changed quite a bit since this report:
2013-01-22 15:53:10 DEBUG [keystoneclient .client] REQ: curl -i http:// 127.0.0 keystoneclient" -H "Content-T 0a3f7f89baec6b2 55"
.1:5000/v2.0/tokens -X POST -H "User-Agent: python-
ype: application/json" -H "X-Auth-Token: 1a9b54f53eff4be
2013-01-22 15:53:10 DEBUG [keystoneclient .client] REQ BODY: {"auth": {"token" e0a3f7f89baec6b 255"}, "tenantName": "service"}}
: {"id": "1a9b54f53eff4b
2013-01-22 15:53:10 DEBUG [keystoneclient .client] RESP: {'date': 'Tue, 22 Jan
2013 14:53:10 GMT', 'content-type': 'application/json', 'content-length': '143'
, 'status': '500', 'vary': 'X-Auth-Token'}
RESP BODY: {"error": {"message": "An unexpected error prevented the server from
fulfilling your request.", "code": 500, "title": "Internal Server Error"}}
2013-01-22 15:53:10 ERROR [keystoneclient .v2_0.client] Authorization Failed. python2. 7/site- packages/ keystoneclient/ v2_0/client. py", line 10 raw=True) python2. 7/site- packages/ keystoneclient/ v2_0/tokens. py", line 37 '/tokens' , params, "access", return_ raw=return_ raw) python2. 7/site- packages/ keystoneclient/ base.py" , line 82, in _c python2. 7/site- packages/ keystoneclient/ client. py", line 168, in request( url, 'POST', **kwargs) python2. 7/site- packages/ keystoneclient/ client. py", line 149, in python2. 7/site- packages/ keystoneclient/ client. py", line 129, in from_response( resp, body) resource] create WaitConditionHandle "WaitHandle" python2. 7/site- packages/ heat-grizzly. 2.36.g55c9032de v-py2.7. egg/heat/ engine/ resource. py", line 225, in create handle_ create( ) python2. 7/site- packages/ heat-grizzly. 2.36.g55c9032de v-py2.7. egg/heat/ engine/ resources/ wait_condition. py", line 88, in handle_create ).create_ stack_user( python2. 7/site- packages/ heat-grizzly. 2.36.g55c9032de v-py2.7. egg/heat/ engine/ resource. py", line 198, in keystone clients. keystone( ) python2. 7/site- packages/ heat-grizzly. 2.36.g55c9032de v-py2.7. egg/heat/ engine/ clients. py", line 61, in keystone ent(self. context) python2. 7/site- packages/ heat-grizzly. 2.36.g55c9032de v-py2.7. egg/heat/ common/ heat_keystonecl ient.py" , line 53, in __init__ python2. 7/site- packages/ keystoneclient/ v2_0/client. py", line 80, in __init__ authenticate( ) python2. 7/site- packages/ keystoneclient/ v2_0/client. py", line 110, in authenticate ilure: Authorization Failed: An unexpected error prevented the server from fulfilling yo...
Traceback (most recent call last):
File "/usr/lib/
2, in authenticate
return_
File "/usr/lib/
, in authenticate
return self._create(
File "/usr/lib/
reate
resp, body = self.api.post(url, body=body)
File "/usr/lib/
post
return self._cs_
File "/usr/lib/
_cs_request
**kwargs)
File "/usr/lib/
request
raise exceptions.
ClientException: An unexpected error prevented the server from fulfilling your request. (HTTP 500)
2013-01-22 15:53:10 ERROR [heat.engine.
Traceback (most recent call last):
File "/usr/lib/
self.
File "/usr/lib/
user_id = self.keystone(
File "/usr/lib/
return self.stack.
File "/usr/lib/
self._keystone = hkc.KeystoneCli
File "/usr/lib/
self.client = kc.Client(**kwargs)
File "/usr/lib/
self.
File "/usr/lib/
"%s" % e)
AuthorizationFa