Skip to content

Commit 6966997

Browse files
authored
vmware_object_role_permission: Fix recursive (#2351)
Fixes #2350 SUMMARY Currently, the module ignores changes to the recursive option. ISSUE TYPE Bugfix Pull Request COMPONENT NAME vmware_object_role_permission ADDITIONAL INFORMATION This also means that recursive has to be correct when removing a permission. But I think that's OK because it makes sense: If you want to remove a non-recursive permission, it doesn't make sense to remove a recursive one and vice versa. Reviewed-by: Alexander Nikitin <[email protected]>
1 parent 47a14cd commit 6966997

File tree

5 files changed

+60
-7
lines changed

5 files changed

+60
-7
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
bugfixes:
2+
- vmware_object_role_permission - The module ignores changing ``recursive``
3+
(https://github.com/ansible-collections/community.vmware/pull/2350).

plugins/modules/vmware_object_role_permission.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,8 @@ def get_perms(self):
218218

219219
def same_permission(self, perm_one, perm_two):
220220
return perm_one.principal.lower() == perm_two.principal.lower() \
221-
and perm_one.roleId == perm_two.roleId
221+
and perm_one.roleId == perm_two.roleId \
222+
and perm_one.propagate == perm_two.propagate
222223

223224
def get_state(self):
224225
for perm in self.current_perms:

tests/integration/targets/vmware_object_role_permission/tasks/vmware_object_role_permission_tests.yml

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,59 @@
5454
that:
5555
- assing_user_vm_folder_idempotency_result.changed is sameas false
5656

57+
- name: Change recursive to false with check_mode
58+
vmware_object_role_permission:
59+
role: Admin
60+
principal: "{{ principal }}"
61+
object_name: "{{ f0 }}"
62+
object_type: Folder
63+
recursive: false
64+
state: present
65+
check_mode: true
66+
register: set_recursive_false_check_mode_result
67+
68+
- name: Make sure if changed occurs
69+
assert:
70+
that:
71+
- set_recursive_false_check_mode_result.changed is sameas true
72+
73+
- name: Change recursive to false
74+
vmware_object_role_permission:
75+
role: Admin
76+
principal: "{{ principal }}"
77+
object_name: "{{ f0 }}"
78+
object_type: Folder
79+
recursive: false
80+
state: present
81+
register: set_recursive_false_result
82+
83+
- name: Make sure that recursive / propagate is unset
84+
assert:
85+
that:
86+
- set_recursive_false_result.changed is sameas true
87+
88+
- name: Change recursive to false (idempotency check)
89+
vmware_object_role_permission:
90+
role: Admin
91+
principal: "{{ principal }}"
92+
object_name: "{{ f0 }}"
93+
object_type: Folder
94+
recursive: false
95+
state: present
96+
register: set_recursive_false_idempotency_result
97+
98+
- name: Make sure there is no change if recursive / propagate is already false
99+
assert:
100+
that:
101+
- set_recursive_false_idempotency_result.changed is sameas false
102+
57103
- name: Unassign user from VM folder with check_mode
58104
vmware_object_role_permission:
59105
role: Admin
60106
principal: "{{ principal }}"
61107
object_name: "{{ f0 }}"
62108
object_type: Folder
109+
recursive: false
63110
state: absent
64111
check_mode: true
65112
register: unassing_user_vm_folder_check_mode_result
@@ -75,6 +122,7 @@
75122
principal: "{{ principal }}"
76123
object_name: "{{ f0 }}"
77124
object_type: Folder
125+
recursive: false
78126
state: absent
79127
register: unassing_user_vm_folder_result
80128

@@ -89,6 +137,7 @@
89137
principal: "{{ principal }}"
90138
object_name: "{{ f0 }}"
91139
object_type: Folder
140+
recursive: false
92141
state: absent
93142
register: unassing_user_vm_folder_idempotency_result
94143

@@ -102,7 +151,7 @@
102151
vmware_object_role_permission:
103152
role: Admin
104153
principal: "{{ principal }}"
105-
object_name: "{{ virtual_machines.0 }}"
154+
object_name: "{{ virtual_machines[0].name }}"
106155
object_type: VirtualMachine
107156
state: present
108157
check_mode: true
@@ -117,7 +166,7 @@
117166
vmware_object_role_permission:
118167
role: Admin
119168
principal: "{{ principal }}"
120-
object_name: "{{ virtual_machines.0 }}"
169+
object_name: "{{ virtual_machines[0].name }}"
121170
object_type: VirtualMachine
122171
state: present
123172
register: assing_user_vm_result
@@ -131,7 +180,7 @@
131180
vmware_object_role_permission:
132181
role: Admin
133182
principal: "{{ principal }}"
134-
object_name: "{{ virtual_machines.0 }}"
183+
object_name: "{{ virtual_machines[0].name }}"
135184
object_type: VirtualMachine
136185
state: present
137186
register: assing_user_vm_idempotency_result
@@ -145,7 +194,7 @@
145194
vmware_object_role_permission:
146195
role: Admin
147196
principal: "{{ principal }}"
148-
object_name: "{{ virtual_machines.0 }}"
197+
object_name: "{{ virtual_machines[0].name }}"
149198
object_type: VirtualMachine
150199
state: absent
151200
check_mode: true
@@ -160,7 +209,7 @@
160209
vmware_object_role_permission:
161210
role: Admin
162211
principal: "{{ principal }}"
163-
object_name: "{{ virtual_machines.0 }}"
212+
object_name: "{{ virtual_machines[0].name }}"
164213
object_type: VirtualMachine
165214
state: absent
166215
register: unassing_user_vm_result
@@ -174,7 +223,7 @@
174223
vmware_object_role_permission:
175224
role: Admin
176225
principal: "{{ principal }}"
177-
object_name: "{{ virtual_machines.0 }}"
226+
object_name: "{{ virtual_machines[0].name }}"
178227
object_type: VirtualMachine
179228
state: absent
180229
register: unassing_user_vm_idempotency_result

0 commit comments

Comments
 (0)