Skip to content

added 'True' as valid option for RawMessageDelivery subscription attr…#2067

Merged
whummer merged 1 commit intolocalstack:masterfrom
rp199:fix-sns-attrs-raw-message-delivery
Feb 20, 2020
Merged

added 'True' as valid option for RawMessageDelivery subscription attr…#2067
whummer merged 1 commit intolocalstack:masterfrom
rp199:fix-sns-attrs-raw-message-delivery

Conversation

@rp199
Copy link
Contributor

@rp199 rp199 commented Feb 19, 2020

…ibute for SNS - SQS integration

This fixes an issue where the Message Attributes were not being delivered from SNS to SQS when the RawMessageDelivery attribute is set like this in the cloudformation template:

  QueueTopicSubscription:
    Type: AWS::SNS::Subscription
    Properties:
      Endpoint: !GetAtt SomeEndpoint.Arn
      Protocol: sqs
      RawMessageDelivery: True
      TopicArn: !Ref SomeTopic.Arn

Moved the check to a function to centralize this logic.

@whummer
Copy link
Member

whummer commented Feb 19, 2020

Looks great, thanks for fixing this @rp199 ! Looks like there are still a few linter issues in the CI build - can we please fix them before merging? Thanks

./localstack/services/sns/sns_listener.py:570:1: E302 expected 2 blank lines, found 1
def is_raw_message_delivery(susbcriber):
^
./localstack/services/sns/sns_listener.py:571:74: W292 no newline at end of file
    return susbcriber.get('RawMessageDelivery') in ('true', True, 'True')                                                                         ^
./tests/unit/test_sns.py:481:1: W293 blank line contains whitespace
^
./tests/unit/test_sns.py:482:5: E303 too many blank lines (2)
    def test_is_raw_message_delivery(self):
    ^
./tests/unit/test_sns.py:488:1: W293 blank line contains whitespace
^
./tests/unit/test_sns.py:491:1: W293 blank line contains whitespace
^
./tests/unit/test_sns.py:495:1: W293 blank line contains whitespace
^
Makefile:138: recipe for target 'lint' failed

@rp199
Copy link
Contributor Author

rp199 commented Feb 19, 2020

Sorry it was my first commit ever and I'm not very experienced with python. I'll fix that.

Just wanted to point out that this is awesome project and I'm looking forward to give my contribute to it.

…ibute for SNS - SQS integration

fixed lint issues
@rp199 rp199 force-pushed the fix-sns-attrs-raw-message-delivery branch from 86017ba to ea89690 Compare February 19, 2020 16:23
@coveralls
Copy link

Coverage Status

Coverage decreased (-0.02%) to 50.372% when pulling ea89690 on rp199:fix-sns-attrs-raw-message-delivery into 67f586a on localstack:master.

@rp199
Copy link
Contributor Author

rp199 commented Feb 19, 2020

Fixed

@whummer
Copy link
Member

whummer commented Feb 20, 2020

Great, thanks again!

@whummer whummer merged commit a56d257 into localstack:master Feb 20, 2020
jgbmattos pushed a commit to jgbmattos/localstack that referenced this pull request Mar 10, 2020
For  mine redrive policy to work on lambda. It was necessary or the raise the  lambda_api.process_sns_notification try except or to handle  the exception on sns_listener.
Since the only place that process_sns_notification is called is on sns_listener i decide to remove the try except inside lamda_api

Minor fix on tests.
Created tests for redrive policy in SNS.
Changed the position of try in case of sqs.
For the lambda execution i would appreciate an opinion.
I discover that the function proccess_sns_notification has two possible return, None, ou an HTTP response. I pretend to check if lambda behaviour that way, or not. Because i guess it would be better if it always return an HTTP Response.

resolve CloudFormation attributes starting with lower case (localstack#2008)

refactor persistence logic; use single file for persistence (localstack#2011)

Fix SQS queue creation attributes and specific attribute retrieval (localstack#2005)

Update elasticmq in order to fix sqs tag on creation (localstack#2017)

fix regex for replacement of S3 ETag hashes (localstack#2021)

Add windows support to the MakeFile (localstack#2024)

Refactor CloudFormation dependency resolution (localstack#2026)

fix resolution of CF stack parameters (localstack#2028)

fix CF unit test

Fix SNS tag listing to remove duplicate tags (localstack#2014)

Fix CloudFormation dependency resolution loop; async stack deployment (localstack#2031)

add ExportName to CloudFormation stack outputs (localstack#2033)

Fix CloudFormation support for IAM::Role (localstack#2034)

Remove None strings from SNS results; refactor resolution of CF resource name placeholders (localstack#2036)

fix persistence for ES API (localstack#2040)

Prefix CloudWatch event file names with timestamps (localstack#2035)

Mark Java LocalstackExtension deprecated (localstack#2047)

add persistence for Elasticsearch Service API calls (localstack#2048)

add API to confirm SNS subscriptions (localstack#2043)

fix setting of empty SQS queue attribute values (localstack#2052)

Expose java options for local lambda executors (localstack#2050)

Fix kinesis stream get_cfn_attribute (localstack#2063)

Upgrade testcontainers Maven dependency to version 1.12.5 (localstack#2059)

minor: fix base image and add sasl libs (localstack#2065)

support ExtendedS3DestinationConfiguration in Firehose streams (localstack#2068)

fix RawMessageDelivery subscription values for SNS - SQS integration (localstack#2067)

Check for None before iterating (localstack#2064)

Fix s3 notification event object size (localstack#2069)

Update PYTHONPATH for Python 3.8 (localstack#2070)

support static refs in CloudFormation Fn::Sub strings (localstack#2076)

Fix CloudWatch log streams lambda timstamp format (localstack#2078)

Return ConsumedCapacity for DynamoDB Query action (localstack#2071)

Add basic /health check endpoint (localstack#2080)

move Java sources to separate project (localstack#2084)

update README

Return SQS maxReceiveCount attribute as integer (localstack#2081)

Allow deleting a specific version of an object in S3 (localstack#2087)

update exports on CF stack update (localstack#2097)

fix handler lookup for "provided" Lambda runtime (localstack#2098)

Consider LAMBDA_REMOVE_CONTAINERS config for docker-reuse Lambda executor (localstack#2094)

fix returned attributes on ReturnValues=ALL_OLD for DynamoDB PutItem; Fix CreationTime for CloudFormation stacks (localstack#2103)

Configure nodejs Lambdas to skip SSL verification; add CF support for S3::BucketPolicy (localstack#2104)

Fix SNS subscription confirmation message to include signature details (localstack#2100)

Fix s3 notification event objectsize (localstack#2105)

Fix notifications for s3 uploads made with presigned post requests (localstack#1640)

Optimize plugin loading to speed up boot time (localstack#2109)

fix deployment of EC2 subnets with CidrIpv6 (localstack#2112)

Make Lambda batch size configurable for Kinesis event source mappings (localstack#2110)

Fix creation of SQS tags via CloudFormation (localstack#2114)

Release version 0.10.8; minor fix in DynamoDB ListStreams (localstack#2117)

Fix forwarding of Lambda output into CloudWatch Logs (localstack#2118)

Fix empty response for PutTargets in CloudWatch Events (localstack#2129)

Fix setting of attributes in existing SQS queues (localstack#2130)

integrate S3 starter into multiserver to improve performance (localstack#2132)

Generate default Lambda FunctionName in CloudFormation (localstack#2134)

Fix order of resource checks for CF deployment in single process (localstack#2136)

update elasticmq to 0.15.5 in base Docker image (localstack#2137)

add postgresql-dev to base Docker image

update elasticmq, assert messages with invalid characters are rejected by SQS (localstack#2135)

Support S3 bucket notifications in CF deployments (localstack#2138)

add generated ReceiptHandle for SQS messages forwarded to Lambda (localstack#2139)

Import fix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants