[openstack-dev] [heat] Keystone errors trying to signal a WaitCondition
Lars Kellogg-Stedman
lars at redhat.com
Fri Jan 31 02:46:09 UTC 2014
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 <lars at redhat.com> | larsks @ irc
Cloud Engineering / OpenStack | " " @ twitter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140130/a07ebbd8/attachment.pgp>
More information about the OpenStack-dev
mailing list