summaryrefslogtreecommitdiffstats
path: root/ansible_collections/azure/azcollection/tests/integration/targets/azure_rm_adgroup/tasks/main.yml
blob: b10580e65cf027e7a7454b63c4c816d1d3e64a0d (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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
- name: Set variables
  ansible.builtin.set_fact:
    tenant_id: "{{ azure_tenant }}"
    resource_prefix: "{{ 999999999999999999994 | random | to_uuid }}"
  run_once: true

- name: Try to return non-existent group using display name
  azure_rm_adgroup_info:
    attribute_name: "displayName"
    attribute_value: "{{ resource_prefix }}-Group-Root"
    tenant: "{{ tenant_id }}"
  register: get_nonexistent_group_display_name_shouldfail
  failed_when:
    - get_nonexistent_group_display_name_shouldfail.ad_groups != []

- name: Create Group Root
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    display_name: "{{ resource_prefix }}-Group-Root"
    mail_nickname: "{{ resource_prefix }}-Group-Root"
    state: 'present'
  register: group_create_changed_shouldpass

- name: Create Group Should Return Not Changed
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    display_name: "{{ resource_prefix }}-Group-Root"
    mail_nickname: "{{ resource_prefix }}-Group-Root"
    state: 'present'
  register: group_create_unchanged_shouldpass

- name: Assert Otherwise Changed Returns are Equal
  ansible.builtin.assert:
    that:
      - group_create_changed_shouldpass.changed == True
      - group_create_unchanged_shouldpass.changed == False
      - group_create_changed_shouldpass.display_name == group_create_unchanged_shouldpass.display_name
      - group_create_changed_shouldpass.mail_enabled == group_create_unchanged_shouldpass.mail_enabled
      - group_create_changed_shouldpass.mail_nickname == group_create_unchanged_shouldpass.mail_nickname
      - group_create_changed_shouldpass.object_id == group_create_unchanged_shouldpass.object_id
      - group_create_changed_shouldpass.security_enabled == group_create_unchanged_shouldpass.security_enabled

- name: Return previously created group using object_id
  azure_rm_adgroup_info:
    object_id: "{{ group_create_unchanged_shouldpass.object_id }}"
    tenant: "{{ tenant_id }}"
  register: get_created_object_id_shouldpass

- name: Assert Returns are Equal to Created Group
  ansible.builtin.assert:
    that:
      - get_created_object_id_shouldpass.ad_groups[0].object_id == group_create_unchanged_shouldpass.object_id

- name: Create Group Member 1
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    display_name: "{{ resource_prefix }}-Group-Member-1"
    mail_nickname: "{{ resource_prefix }}-Group-Member-1"
    state: 'present'
  register: create_pass_first

- name: Create Group Member 2
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    display_name: "{{ resource_prefix }}-Group-Member-2"
    mail_nickname: "{{ resource_prefix }}-Group-Member-2"
    state: 'present'
  register: create_pass_second

- name: Ensure member is in group using display_name and mail_nickname
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    display_name: "{{ resource_prefix }}-Group-Root"
    mail_nickname: "{{ resource_prefix }}-Group-Root"
    state: 'present'
    present_members:
      - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_pass_first.object_id }}"
      - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_pass_second.object_id }}"
  register: add_pass

- name: Validate members are in the group
  ansible.builtin.assert:
    that:
      - add_pass.group_members[0].object_id == create_pass_first.object_id or add_pass.group_members[1].object_id == create_pass_first.object_id
      - add_pass.group_members[1].object_id == create_pass_second.object_id or add_pass.group_members[0].object_id == create_pass_second.object_id

- name: Ensure member is in group that is already present using object_id
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    object_id: "{{ group_create_changed_shouldpass.object_id }}"
    state: 'present'
    present_members:
      - "https://graph.windows.net/{{ tenant_id }}/directoryObjects/{{ create_pass_first.object_id }}"
  register: add_already_present_member_to_group_shouldpass

- name: Validate nothing changed from already present member
  ansible.builtin.assert:
    that:
      - add_already_present_member_to_group_shouldpass.changed == false

- name: Ensure member is not in group using object_id
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    object_id: "{{ group_create_changed_shouldpass.object_id }}"
    state: 'present'
    absent_members:
      - "{{ create_pass_second.object_id }}"
  register: remove_member_from_group_shouldpass

- name: Validate Group Member 1 is in the group and Group Member 2 is not
  ansible.builtin.assert:
    that:
      - remove_member_from_group_shouldpass.group_members[0].object_id == create_pass_first.object_id
      - remove_member_from_group_shouldpass.group_members | length == 1

- name: Ensure member is not in group that is already not in group using display_name and mail_nickname
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    display_name: "{{ resource_prefix }}-Group-Root"
    mail_nickname: "{{ resource_prefix }}-Group-Root"
    state: 'present'
    absent_members:
      - "{{ create_pass_second.object_id }}"
  register: remove_already_absent_member_from_group_shouldpass

- name: Validate nothing changed from already absent member
  ansible.builtin.assert:
    that:
      - remove_already_absent_member_from_group_shouldpass.changed == false

- name: Return a specific group using object_id
  azure_rm_adgroup_info:
    object_id: "{{ group_create_changed_shouldpass.object_id }}"
    tenant: "{{ tenant_id }}"
  register: object_id_shouldpass

- name: Return a specific group using object_id and return_owners
  azure_rm_adgroup_info:
    object_id: "{{ group_create_changed_shouldpass.object_id }}"
    return_owners: true
    tenant: "{{ tenant_id }}"
  register: object_id_return_owners_shouldpass

- name: Return a specific group using object_id and return_owners and return_group_members
  azure_rm_adgroup_info:
    object_id: "{{ group_create_changed_shouldpass.object_id }}"
    return_owners: true
    return_group_members: true
    tenant: "{{ tenant_id }}"
  register: object_id_return_owners_and_group_members_shouldpass

- name: Return a specific group using object_id and member_groups
  azure_rm_adgroup_info:
    object_id: "{{ group_create_changed_shouldpass.object_id }}"
    return_member_groups: true
    tenant: "{{ tenant_id }}"
  register: object_id_return_member_groups_shouldpass

- name: Return a specific group using object_id and check_membership
  azure_rm_adgroup_info:
    object_id: "{{ group_create_changed_shouldpass.object_id }}"
    check_membership: "{{ create_pass_first.object_id }}"
    tenant: "{{ tenant_id }}"
  register: object_id_return_check_membership_shouldpass

- name: Return a specific group using displayName attribute
  azure_rm_adgroup_info:
    attribute_name: "displayName"
    attribute_value: "{{ group_create_changed_shouldpass.display_name }}"
    tenant: "{{ tenant_id }}"
  register: displayname_attribute_shouldpass

- name: Return a specific group using mailNickname filter
  azure_rm_adgroup_info:
    odata_filter: "mailNickname eq '{{ group_create_changed_shouldpass.mail_nickname }}'"
    tenant: "{{ tenant_id }}"
  register: mailnickname_filter_shouldpass

- name: Return a different group using displayName attribute
  azure_rm_adgroup_info:
    attribute_name: "displayName"
    attribute_value: "{{ create_pass_second.display_name }}"
    tenant: "{{ tenant_id }}"
  register: displayname_attribute_different_shouldpass

- name: Assert All Returns Are Equal
  ansible.builtin.assert:
    that:
      - object_id_shouldpass == displayname_attribute_shouldpass
      - object_id_shouldpass == mailnickname_filter_shouldpass

- name: Assert Returns Are Not Equal
  ansible.builtin.assert:
    that:
      - object_id_shouldpass != displayname_attribute_different_shouldpass

- name: Delete group Group Root on object_id
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    object_id: "{{ group_create_unchanged_shouldpass.object_id }}"
    state: 'absent'
  register: group_delete_group_root_shouldpass

- name: Try to return now deleted group Group Root using object_id
  azure_rm_adgroup_info:
    object_id: "{{ group_create_unchanged_shouldpass.object_id }}"
    tenant: "{{ tenant_id }}"
  register: get_deleted_object_group_root_shouldfail
  failed_when:
    - '"failed to get ad group info Resource" not in get_deleted_object_group_root_shouldfail.msg'

- name: Delete group Group Member 1 on object_id
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    object_id: "{{ create_pass_first.object_id }}"
    state: 'absent'
  register: group_delete_group_member_1_shouldpass

- name: Try to return now deleted group Group Member 1 using object_id
  azure_rm_adgroup_info:
    object_id: "{{ create_pass_first.object_id }}"
    tenant: "{{ tenant_id }}"
  register: get_deleted_object_group_member_1_shouldfail
  failed_when:
    - '"failed to get ad group info Resource" not in get_deleted_object_group_member_1_shouldfail.msg'

- name: Delete group Group Member 2 on object_id
  azure_rm_adgroup:
    tenant: "{{ tenant_id }}"
    object_id: "{{ create_pass_second.object_id }}"
    state: 'absent'
  register: group_delete_group_member_2_shouldpass

- name: Try to return now deleted group Group Member 2 using object_id
  azure_rm_adgroup_info:
    object_id: "{{ create_pass_second.object_id }}"
    tenant: "{{ tenant_id }}"
  register: get_deleted_object_group_member_2_shouldfail
  failed_when:
    - '"failed to get ad group info Resource" not in get_deleted_object_group_member_2_shouldfail.msg'