--- - name: set up aws connection info set_fact: aws_connection_info: &aws_connection_info aws_access_key: "{{ aws_access_key }}" aws_secret_key: "{{ aws_secret_key }}" security_token: "{{ security_token }}" region: "{{ aws_region }}" no_log: yes - block: - name: Test creating SQS queue sqs_queue: name: "{{ resource_prefix }}{{ 1000 | random }}" <<: *aws_connection_info register: create_result - name: Assert SQS queue created assert: that: - create_result.changed - create_result.region == "{{ aws_region }}" always: - name: Test deleting SQS queue sqs_queue: name: "{{ create_result.name }}" state: absent <<: *aws_connection_info register: delete_result retries: 3 delay: 3 until: delete_result.changed - name: Assert SQS queue deleted assert: that: - delete_result.changed - name: Test delete SQS queue that doesn't exist sqs_queue: name: "{{ resource_prefix }}{{ 1000 | random }}" state: absent <<: *aws_connection_info register: delete_result - name: Assert delete non-existant queue returns cleanly assert: that: - delete_result.changed == False - name: Test queue features block: - name: Test create queue with attributes sqs_queue: name: "{{ resource_prefix }}{{ 1000 | random }}" default_visibility_timeout: 900 delivery_delay: 900 maximum_message_size: 9009 message_retention_period: 900 receive_message_wait_time: 10 policy: Version: "2012-10-17" Statement: Effect: Allow Action: "*" <<: *aws_connection_info register: create_result - name: Assert queue created with configuration assert: that: - create_result.changed - create_result.default_visibility_timeout == "900" - create_result.delivery_delay == "900" - create_result.maximum_message_size == "9009" - create_result.message_retention_period == "900" - create_result.receive_message_wait_time == "10" - create_result.policy.Version == "2012-10-17" - create_result.policy.Statement.Effect == "Allow" - create_result.policy.Statement.Action == "*" always: - name: Cleaning up queue sqs_queue: name: "{{ create_result.name }}" state: absent <<: *aws_connection_info register: delete_result retries: 3 delay: 3 until: delete_result.changed - name: Test queue with redrive block: - name: Creating dead letter queue sqs_queue: name: "{{ resource_prefix }}{{ 1000 | random }}" <<: *aws_connection_info register: dead_letter_queue - name: Test create queue with redrive_policy sqs_queue: name: "{{ resource_prefix }}{{ 1000 | random }}" redrive_policy: maxReceiveCount: 5 deadLetterTargetArn: "{{ dead_letter_queue.queue_arn }}" <<: *aws_connection_info register: create_result - name: Assert queue created with configuration assert: that: - create_result.changed always: - name: Cleaning up queue sqs_queue: name: "{{ item.name }}" state: absent <<: *aws_connection_info register: delete_result retries: 3 delay: 3 with_items: - { name: "{{ create_result.name }}" } - { name: "{{ dead_letter_queue.name }}" }