Comment 14 for bug 1372710

Revision history for this message
Bruno Bompastor (bruno-bompastor) wrote :

Yes steven you are right. In the new python boto versions they are sending the arguments via final headers but we are expecting on the query string. See the example.

python boto 2.32.1:

DEBUG [2014-11-12 11:13:48,915] cfn-push-stats called Namespace(cpu_util=False, credential_file='/etc/cfn/cfn-credentials', disk_path='/', disk_space_avail=False, disk_space_used=False, disk_space_util=False, disk_units='megabytes', haproxy=False, haproxy_latency=False, heartbeat=False, mem_avail=False, mem_used=False, mem_util=False, memory_units='megabytes', metric=None, service_failure=True, swap_used=False, swap_util=False, units=None, value=None, verbose=False, watch='restarter-HttpFailureAlarm')
DEBUG [2014-11-12 11:13:48,916] Using access key provided by client.
DEBUG [2014-11-12 11:13:48,916] Using secret key provided by client.
INFO [2014-11-12 11:13:48,916] Sending metric ServiceFailure, Units Counter, Value 1
DEBUG [2014-11-12 11:13:48,917] Method: POST
DEBUG [2014-11-12 11:13:48,917] Path: /v1/
DEBUG [2014-11-12 11:13:48,917] Data:
DEBUG [2014-11-12 11:13:48,917] Headers: {}
DEBUG [2014-11-12 11:13:48,917] Host: 10.32.10.151
DEBUG [2014-11-12 11:13:48,917] Port: 8003
DEBUG [2014-11-12 11:13:48,917] Params: {'MetricData.member.1.Dimensions.member.2.Value': 'restarter-HttpFailureAlarm', 'MetricData.member.1.Dimensions.member.2.Name': 'AlarmName', 'Namespace': 'system/linux', 'MetricData.member.1.Unit': 'Counter', 'MetricData.member.1.Value': 1, 'Action': 'PutMetricData', 'MetricData.member.1.Dimensions.member.1.Name': 'InstanceId', 'Version': '2010-08-01', 'MetricData.member.1.Dimensions.member.1.Value': u'90b27502-49cf-43f8-804c-fccd304e796d', 'MetricData.member.1.MetricName': 'ServiceFailure'}
DEBUG [2014-11-12 11:13:48,917] establishing HTTP connection: kwargs={'port': 8003, 'timeout': 70}
DEBUG [2014-11-12 11:13:48,917] Token: None
DEBUG [2014-11-12 11:13:48,919] CanonicalRequest:
POST
/v1/

host:10.32.10.151:8003
x-amz-date:20141112T101348Z

host;x-amz-date
67f215d4c6638325995976310e635a69f4c10c56de61e8d9855e9f80e1f34186
DEBUG [2014-11-12 11:13:48,919] StringToSign:
AWS4-HMAC-SHA256
20141112T101348Z
20141112/32/10/aws4_request
55d0054ff53524a243e0bef360f267ffbac6b31d061a622553b20042053780da
DEBUG [2014-11-12 11:13:48,919] Signature:
4086ffd920db62e40af076da8e2a0b02408b2d430eb9c059eca1034a506c7fce
DEBUG [2014-11-12 11:13:48,919] Final headers: {'Content-Length': '438', 'User-Agent': 'Boto/2.32.1 Python/2.6.6 Linux/2.6.32-431.23.3.el6.x86_64', 'Host': '10.32.10.151:8003', 'X-Amz-Date': '20141112T101348Z', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Authorization': 'AWS4-HMAC-SHA256 Credential=27178e0b9c71478e837c02d17fe1aa4d/20141112/32/10/aws4_request,SignedHeaders=host;x-amz-date,Signature=4086ffd920db62e40af076da8e2a0b02408b2d430eb9c059eca1034a506c7fce'}
DEBUG [2014-11-12 11:13:48,935] Response headers: [('date', 'Wed, 12 Nov 2014 10:13:49 GMT'), ('content-length', '195'), ('content-type', 'application/xml; charset=UTF-8')]
DEBUG [2014-11-12 11:13:48,935] <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 [2014-11-12 11:13:48,935] 403 SignatureDoesNotMatch
ERROR [2014-11-12 11:13:48,936] <ErrorResponse><Error><Message>The request signature we calculated does not match the signature you provided</Message><Code>SignatureDoesNotMatch</Code><Type>Sender</Type></Error></ErrorResponse>

python boto 2.12.0:

DEBUG [2014-11-12 11:19:40,501] cfn-push-stats called Namespace(cpu_util=False, credential_file='/etc/cfn/cfn-credentials', disk_path='/', disk_space_avail=False, disk_space_used=False, disk_space_util=False, disk_units='megabytes', haproxy=False, haproxy_latency=False, heartbeat=False, mem_avail=False, mem_used=False, mem_util=False, memory_units='megabytes', metric=None, service_failure=True, swap_used=False, swap_util=False, units=None, value=None, verbose=False, watch='restarter-HttpFailureAlarm')
DEBUG [2014-11-12 11:19:40,502] Using access key provided by client.
DEBUG [2014-11-12 11:19:40,502] Using secret key provided by client.
INFO [2014-11-12 11:19:40,502] Sending metric ServiceFailure, Units Counter, Value 1
DEBUG [2014-11-12 11:19:40,503] Method: POST
DEBUG [2014-11-12 11:19:40,503] Path: /v1/
DEBUG [2014-11-12 11:19:40,503] Data:
DEBUG [2014-11-12 11:19:40,503] Headers: {}
DEBUG [2014-11-12 11:19:40,503] Host: 10.32.10.151:8003
DEBUG [2014-11-12 11:19:40,503] Params: {'MetricData.member.1.Dimensions.member.2.Value': 'restarter-HttpFailureAlarm', 'MetricData.member.1.Dimensions.member.2.Name': 'AlarmName', 'Namespace': 'system/linux', 'MetricData.member.1.Unit': 'Counter', 'MetricData.member.1.Value': 1, 'Action': 'PutMetricData', 'MetricData.member.1.Dimensions.member.1.Name': 'InstanceId', 'Version': '2010-08-01', 'MetricData.member.1.Dimensions.member.1.Value': u'90b27502-49cf-43f8-804c-fccd304e796d', 'MetricData.member.1.MetricName': 'ServiceFailure'}
DEBUG [2014-11-12 11:19:40,503] establishing HTTP connection: kwargs={'timeout': 70}
DEBUG [2014-11-12 11:19:40,503] Token: None
DEBUG [2014-11-12 11:19:40,504] using _calc_signature_2
DEBUG [2014-11-12 11:19:40,504] query string: AWSAccessKeyId=27178e0b9c71478e837c02d17fe1aa4d&Action=PutMetricData&MetricData.member.1.Dimensions.member.1.Name=InstanceId&MetricData.member.1.Dimensions.member.1.Value=90b27502-49cf-43f8-804c-fccd304e796d&MetricData.member.1.Dimensions.member.2.Name=AlarmName&MetricData.member.1.Dimensions.member.2.Value=restarter-HttpFailureAlarm&MetricData.member.1.MetricName=ServiceFailure&MetricData.member.1.Unit=Counter&MetricData.member.1.Value=1&Namespace=system%2Flinux&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2014-11-12T10%3A19%3A40Z&Version=2010-08-01
DEBUG [2014-11-12 11:19:40,505] string_to_sign: POST
10.32.10.151:8003
/v1/
AWSAccessKeyId=27178e0b9c71478e837c02d17fe1aa4d&Action=PutMetricData&MetricData.member.1.Dimensions.member.1.Name=InstanceId&MetricData.member.1.Dimensions.member.1.Value=90b27502-49cf-43f8-804c-fccd304e796d&MetricData.member.1.Dimensions.member.2.Name=AlarmName&MetricData.member.1.Dimensions.member.2.Value=restarter-HttpFailureAlarm&MetricData.member.1.MetricName=ServiceFailure&MetricData.member.1.Unit=Counter&MetricData.member.1.Value=1&Namespace=system%2Flinux&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2014-11-12T10%3A19%3A40Z&Version=2010-08-01
DEBUG [2014-11-12 11:19:40,505] len(b64)=44
DEBUG [2014-11-12 11:19:40,505] base64 encoded digest: Vaw1C+YfSbaVZg4tm6iR10QelU73Ll1VwTaJjOvU+HU=
DEBUG [2014-11-12 11:19:40,505] query_string: AWSAccessKeyId=27178e0b9c71478e837c02d17fe1aa4d&Action=PutMetricData&MetricData.member.1.Dimensions.member.1.Name=InstanceId&MetricData.member.1.Dimensions.member.1.Value=90b27502-49cf-43f8-804c-fccd304e796d&MetricData.member.1.Dimensions.member.2.Name=AlarmName&MetricData.member.1.Dimensions.member.2.Value=restarter-HttpFailureAlarm&MetricData.member.1.MetricName=ServiceFailure&MetricData.member.1.Unit=Counter&MetricData.member.1.Value=1&Namespace=system%2Flinux&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2014-11-12T10%3A19%3A40Z&Version=2010-08-01 Signature: Vaw1C+YfSbaVZg4tm6iR10QelU73Ll1VwTaJjOvU+HU=
DEBUG [2014-11-12 11:19:40,939] <PutMetricDataResponse><PutMetricDataResult><ResponseMetadata>None</ResponseMetadata></PutMetricDataResult></PutMetricDataResponse>