I'm getting an error from Keystone whenever I try to signal a Heat WaitCondition. I'm trying to figure out if this is a bug or me simply not understanding how everything is supposed to communicate.
When trying to signal a WaitConditionHandle, I see in api-cfn.log
that Heat gets as far as:
DEBUG urllib3.connectionpool [-] "POST /v2.0/ec2tokens HTTP/1.1" 500 183
_make_request /usr/lib/python2.7/site-packages/urllib3/connectionpool.py:330
At this point, Keystone logs the following:
ERROR keystone.common.wsgi [-] 'unicode' object has no attribute 'get'
TRACE keystone.common.wsgi Traceback (most recent call last):
TRACE keystone.common.wsgi File
"/usr/lib/python2.7/site-packages/keystone/common/wsgi.py", line 238, in
__call__
TRACE keystone.common.wsgi result = method(context, **params)
TRACE keystone.common.wsgi File
"/usr/lib/python2.7/site-packages/keystone/contrib/ec2/controllers.py", line
96, in authenticate
TRACE keystone.common.wsgi creds_ref =
self._get_credentials(credentials['access'])
TRACE keystone.common.wsgi File
"/usr/lib/python2.7/site-packages/keystone/contrib/ec2/controllers.py", line
237, in _get_credentials
TRACE keystone.common.wsgi return
self._convert_v3_to_ec2_credential(creds)
TRACE keystone.common.wsgi File
"/usr/lib/python2.7/site-packages/keystone/contrib/ec2/controllers.py", line
222, in _convert_v3_to_ec2_credential
TRACE keystone.common.wsgi 'access': blob.get('access'),
TRACE keystone.common.wsgi AttributeError: 'unicode' object has no
attribute 'get'
TRACE keystone.common.wsgi
The HOT template looks (partially) like this:
wait0_handle:
type: AWS::CloudFormation::WaitConditionHandle
wait0:
type: AWS::CloudFormation::WaitCondition
properties:
Handle: {get_resource: wait0_handle}
Timeout: 1800
instance0:
type: OS::Nova::Server
properties:
flavor: {get_param: flavor}
image: {get_param: image}
key_name: { get_param: key_name }
networks:
- port: { get_resource: instance0_eth0 }
user_data:
str_replace:
template: |
#!/bin/sh
cat > /root/wait-url.txt <<EOF
WAIT_URL
EOF
params:
WAIT_URL: {"Ref": wait0_handle}
And I end up with a URL that looks like this:
http://192.168.200.1:8000/v1/waitcondition/arn%3Aopenstack%3Aheat%3A%3A28a490a259974817b88ce490a74df8d2%3Astacks%2Fs0%2F36b013ca-1e46-4340-bf0e-44a609ae6758%2Fresources%2Fwait0_handle?Timestamp=2014-01-31T02%3A09%3A16Z&SignatureMethod=HmacSHA256&AWSAccessKeyId=cd6fbf4ebaed4ea1886ead9f98451f5a&SignatureVersion=2&Signature=9c2bvEYoedkm3uQwVOAcIA5xxy3x9q%2BO1KncY8Eeo%2BQ%3D
I've tried signaling this both using cfn-signal and using the
generated curl commandline directly. I'm using a recent (sometime
this past week) Heat master, and Keystone 2013.2.1.
--
Lars Kellogg-Stedman <[email protected]> | larsks @ irc
Cloud Engineering / OpenStack | " " @ twitter
pgp8V8FiAvkw_.pgp
Description: PGP signature
_______________________________________________ OpenStack-dev mailing list [email protected] http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
