mirror of https://github.com/ansible/ansible.git
sqs_queue - Move to boto3 and add support for various extra features (#66795)
* reworked sqs_queue * Switch default purge_tags behaviour to false. This matches the behaviour of ec2_tag and ecs_tag. * Minor lint / review fixups * Add missing AWS IAM policy for SQS tests * Move integration tests to using module_defaults: group/aws:... * add changelog * Break out the 'compatability' map from our spec definition (gets flagged by the schema validation) * Tweaks based on review * add basic examples * Lint fixups * Switch out NonExistentQueue logic so it's easier to follow * Reorder name argument options for consistency Co-authored-by: Dennis Podkovyrin <dennis.podkovyrin@gmail.com>pull/67841/head
parent
75b088d6a9
commit
da30e6d2e1
@ -0,0 +1,3 @@
|
||||
minor_changes:
|
||||
- 'sqs_queue: updated to use boto3 instead of boto'
|
||||
- 'sqs_queue: Add support for tagging, KMS and FIFO queues'
|
||||
@ -1,114 +1,106 @@
|
||||
---
|
||||
- name: set up aws connection info
|
||||
set_fact:
|
||||
aws_connection_info: &aws_connection_info
|
||||
- name: Main test block
|
||||
module_defaults:
|
||||
group/aws:
|
||||
aws_access_key: "{{ aws_access_key }}"
|
||||
aws_secret_key: "{{ aws_secret_key }}"
|
||||
security_token: "{{ security_token }}"
|
||||
security_token: "{{ security_token | default(omit) }}"
|
||||
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
|
||||
- block:
|
||||
- name: Test creating SQS queue
|
||||
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
|
||||
- name: Assert SQS queue created
|
||||
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
|
||||
- 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: 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
|
||||
- name: Assert SQS queue deleted
|
||||
assert:
|
||||
that:
|
||||
- create_result.changed
|
||||
always:
|
||||
- name: Cleaning up queue
|
||||
- delete_result.changed
|
||||
- name: Test delete SQS queue that doesn't exist
|
||||
sqs_queue:
|
||||
name: "{{ item.name }}"
|
||||
name: "{{ resource_prefix }}{{ 1000 | random }}"
|
||||
state: absent
|
||||
<<: *aws_connection_info
|
||||
register: delete_result
|
||||
retries: 3
|
||||
delay: 3
|
||||
with_items:
|
||||
- { name: "{{ create_result.name }}" }
|
||||
- { name: "{{ dead_letter_queue.name }}" }
|
||||
- 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: "*"
|
||||
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[0].Effect == "Allow"
|
||||
- create_result.policy.Statement[0].Action == "*"
|
||||
always:
|
||||
- name: Cleaning up queue
|
||||
sqs_queue:
|
||||
name: "{{ create_result.name }}"
|
||||
state: absent
|
||||
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 }}"
|
||||
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 }}"
|
||||
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
|
||||
register: delete_result
|
||||
retries: 3
|
||||
delay: 3
|
||||
with_items:
|
||||
- { name: "{{ create_result.name }}" }
|
||||
- { name: "{{ dead_letter_queue.name }}" }
|
||||
|
||||
Loading…
Reference in New Issue