blob: 7e8cd8d128b58518663ff59b45d41e4aa56f0070 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
---
# tasks file for test_ec2_tag
- name: Set up AWS connection info
module_defaults:
group/aws:
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
security_token: "{{ security_token | default(omit) }}"
region: "{{ aws_region }}"
block:
- name: Create an EC2 volume so we have something to tag
ec2_vol:
name: "{{ resource_prefix }} ec2_tag volume"
volume_size: 1
state: present
zone: "{{ aws_region }}a"
register: volume
- name: List the tags on the volume (ec2_tag)
ec2_tag:
resource: "{{ volume.volume_id }}"
state: list
register: result
- name: List the tags on the volume (ec2_tag_info)
ec2_tag_info:
resource: "{{ volume.volume_id }}"
register: result_info
- assert:
that:
- result.tags | length == 1
- result.tags.Name == '{{ resource_prefix }} ec2_tag volume'
- result_info.tags | length == 1
- result_info.tags.Name == '{{ resource_prefix }} ec2_tag volume'
- name: Set some new tags on the volume
ec2_tag:
resource: "{{ volume.volume_id }}"
state: present
tags:
foo: foo
bar: baz
baz: also baz
register: result
- name: List the new tags on the volume
ec2_tag_info:
resource: "{{ volume.volume_id }}"
register: result_info
- assert:
that:
- result is changed
- result.tags | length == 4
- result.added_tags | length == 3
- result.tags.Name == '{{ resource_prefix }} ec2_tag volume'
- result.tags.foo == 'foo'
- result.tags.bar == 'baz'
- result.tags.baz == 'also baz'
- result_info.tags | length == 4
- result_info.tags.Name == '{{ resource_prefix }} ec2_tag volume'
- result_info.tags.foo == 'foo'
- result_info.tags.bar == 'baz'
- result_info.tags.baz == 'also baz'
- name: Remove a tag by name
ec2_tag:
resource: "{{ volume.volume_id }}"
state: absent
tags:
baz:
register: result
- assert:
that:
- result is changed
- result.removed_tags | length == 1
- "'baz' in result.removed_tags"
- name: Don't remove a tag
ec2_tag:
resource: "{{ volume.volume_id }}"
state: absent
tags:
foo: baz
register: result
- assert:
that:
- result is not changed
- name: Remove a tag
ec2_tag:
resource: "{{ volume.volume_id }}"
state: absent
tags:
foo: foo
register: result
- assert:
that:
- result is changed
- result.tags | length == 2
- "'added_tags' not in result"
- result.removed_tags | length == 1
- result.tags.Name == '{{ resource_prefix }} ec2_tag volume'
- result.tags.bar == 'baz'
- name: Set an exclusive tag
ec2_tag:
resource: "{{ volume.volume_id }}"
purge_tags: true
tags:
baz: quux
register: result
- assert:
that:
- result is changed
- result.tags | length == 1
- result.added_tags | length == 1
- result.removed_tags | length == 2
- result.tags.baz == 'quux'
- name: Remove all tags
ec2_tag:
resource: "{{ volume.volume_id }}"
purge_tags: true
tags: {}
register: result
- assert:
that:
- result is changed
- result.tags | length == 0
always:
- name: Remove the volume
ec2_vol:
id: "{{ volume.volume_id }}"
state: absent
register: result
until: result is not failed
ignore_errors: yes
retries: 10
|