403 SignatureDoesNotMatch while setting up heat-watch
I've been trying to use heat-watch to have an auto-scaling template but it seems to be a dead-end. I'm using AutoScalingMultiAZSample.template that's provided with heat. The instances are launched, I have both the Load Balancer and the Instance up but cfn-push-stats never seem to be able to reach the controller.
After many unfortunate approaches, I decided going back to the controller and check if there could be anything wrong with heat-api-cloudwatch. Nothing wrong. So it seemed to be something with boto. I double checked both boto docs (1, 2). Bingo:
DEBUG:Debug level logging enabled
INFO:No AlarmName passed, getting results for ALL alarms
DEBUG:Got CW connection object OK
DEBUG:Method: GET
DEBUG:Path: /v1/
DEBUG:Data:
DEBUG:Headers: {}
DEBUG:Host: 127.0.0.1:8003
DEBUG:establishing HTTP connection: kwargs={}
DEBUG:Token: None
DEBUG:using _calc_signature_2
DEBUG:query string: AWSAccessKeyId=********************************&Action=DescribeAlarms&AlarmNames.member.1=None&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2013-04-17T15%3A16%3A59Z&Version=2010-08-01
DEBUG:string_to_sign: GET
127.0.0.1:8003
/v1/
AWSAccessKeyId=********************************&Action=DescribeAlarms&AlarmNames.member.1=None&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2013-04-17T15%3A16%3A59Z&Version=2010-08-01
DEBUG:len(b64)=44
DEBUG:base64 encoded digest: TlSJGJisVihN4dlX8IZo0PPvClI19YJ/jFVgMMqbOeE=
DEBUG:query_string: AWSAccessKeyId=********************************&Action=DescribeAlarms&AlarmNames.member.1=None&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2013-04-17T15%3A16%3A59Z&Version=2010-08-01 Signature: TlSJGJisVihN4dlX8IZo0PPvClI19YJ/jFVgMMqbOeE=
DEBUG:<ErrorResponse><Error><Message>The request signature we calculated does not match the signature you provided</Message><Code>SignatureDoesNotMatch</Code><Type>Sender</Type></Error></ErrorResponse>
ERROR:403 SignatureDoesNotMatch
ERROR:<ErrorResponse><Error><Message>The request signature we calculated does not match the signature you provided</Message><Code>SignatureDoesNotMatch</Code><Type>Sender</Type></Error></ErrorResponse>
Traceback (most recent call last):
File "/usr/bin/heat-watch", line 5, in <module>
pkg_resources.run_script('heat==7', 'heat-watch')
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 505, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1245, in run_script
execfile(script_filename, namespace, namespace)
File "/usr/lib/python2.6/site-packages/heat-7-py2.6.egg/EGG-INFO/scripts/heat-watch", line 281, in <module>
main()
File "/usr/lib/python2.6/site-packages/heat-7-py2.6.egg/EGG-INFO/scripts/heat-watch", line 268, in main
result = cmd(opts, args)
File "/usr/lib/python2.6/site-packages/heat-7-py2.6.egg/heat/utils.py", line 44, in wrapper
ret = func(*arguments, **kwargs)
File "/usr/lib/python2.6/site-packages/heat-7-py2.6.egg/EGG-INFO/scripts/heat-watch", line 66, in alarm_describe
result = c.describe_alarm(**parameters)
File "/usr/lib/python2.6/site-packages/heat-7-py2.6.egg/heat/boto_client_cloudwatch.py", line 59, in describe_alarm
alarm_names=[name])
File "/usr/lib/python2.6/site-packages/boto/ec2/cloudwatch/__init__.py", line 388, in describe_alarms
[('MetricAlarms', MetricAlarms)])[0]
File "/usr/lib/python2.6/site-packages/boto/connection.py", line 980, in get_list
raise self.ResponseError(response.status, response.reason, body)
boto.exception.BotoServerError: BotoServerError: 403 SignatureDoesNotMatch
<ErrorResponse><Error><Message>The request signature we calculated does not match the signature you provided</Message><Code>SignatureDoesNotMatch</Code><Type>Sender</Type></Error></ErrorResponse>
BTW, I'm using boto-2.5.2. Any idea of ...