Only report change when home directory is different on FreeBSD (#42865)
* Only report change when home directory is different
Add tests with home: parameter
Have to skip macOS for now since there is a bug when specifying the home directory path for an existing user that results in a module failure. That needs to be fixed in a separate PR.
(cherry picked from commit 0ca61e9d87
)
This commit is contained in:
parent
e288c23a18
commit
2267ba2f05
4 changed files with 60 additions and 5 deletions
|
@ -0,0 +1,2 @@
|
|||
bugfixes:
|
||||
- user - fix bug that resulted in module always reporting a change when specifiying the home directory on FreeBSD (https://github.com/ansible/ansible/issues/42484)
|
|
@ -1010,8 +1010,9 @@ class FreeBsdUser(User):
|
|||
if self.home is not None:
|
||||
if (info[5] != self.home and self.move_home) or (not os.path.exists(self.home) and self.create_home):
|
||||
cmd.append('-m')
|
||||
cmd.append('-d')
|
||||
cmd.append(self.home)
|
||||
if info[5] != self.home:
|
||||
cmd.append('-d')
|
||||
cmd.append(self.home)
|
||||
|
||||
if self.skeleton is not None:
|
||||
cmd.append('-k')
|
||||
|
|
|
@ -37,7 +37,13 @@
|
|||
user:
|
||||
name: ansibulluser
|
||||
state: present
|
||||
register: user_test0
|
||||
register: user_test0_0
|
||||
|
||||
- name: create the user again
|
||||
user:
|
||||
name: ansibulluser
|
||||
state: present
|
||||
register: user_test0_1
|
||||
|
||||
- debug:
|
||||
var: user_test0
|
||||
|
@ -54,9 +60,50 @@
|
|||
- name: validate results for testcase 0
|
||||
assert:
|
||||
that:
|
||||
- user_test0 is changed
|
||||
- user_test0_0 is changed
|
||||
- user_test0_1 is not changed
|
||||
- '"ansibulluser" in user_names.stdout_lines'
|
||||
|
||||
# https://github.com/ansible/ansible/issues/42484
|
||||
# Skipping macOS for now since there is a bug when changing home directory
|
||||
- block:
|
||||
- name: create user specifying home
|
||||
user:
|
||||
name: ansibulluser
|
||||
state: present
|
||||
home: "{{ user_home_prefix[ansible_system] }}/ansibulluser"
|
||||
register: user_test3_0
|
||||
|
||||
- name: create user again specifying home
|
||||
user:
|
||||
name: ansibulluser
|
||||
state: present
|
||||
home: "{{ user_home_prefix[ansible_system] }}/ansibulluser"
|
||||
register: user_test3_1
|
||||
|
||||
- name: change user home
|
||||
user:
|
||||
name: ansibulluser
|
||||
state: present
|
||||
home: "{{ user_home_prefix[ansible_system] }}/ansibulluser-mod"
|
||||
register: user_test3_2
|
||||
|
||||
- name: change user home back
|
||||
user:
|
||||
name: ansibulluser
|
||||
state: present
|
||||
home: "{{ user_home_prefix[ansible_system] }}/ansibulluser"
|
||||
register: user_test3_3
|
||||
|
||||
- name: validate results for testcase 3
|
||||
assert:
|
||||
that:
|
||||
- user_test3_0 is not changed
|
||||
- user_test3_1 is not changed
|
||||
- user_test3_2 is changed
|
||||
- user_test3_3 is changed
|
||||
when: ansible_system != 'Darwin'
|
||||
|
||||
|
||||
## user check
|
||||
|
||||
|
@ -65,7 +112,7 @@
|
|||
name: "{{ user_names.stdout_lines | random }}"
|
||||
state: present
|
||||
create_home: no
|
||||
with_sequence: start=1 end=5
|
||||
loop: "{{ range(1, 5+1) | list }}"
|
||||
register: user_test1
|
||||
|
||||
- debug:
|
||||
|
|
5
test/integration/targets/user/vars/main.yml
Normal file
5
test/integration/targets/user/vars/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
user_home_prefix:
|
||||
Linux: '/home'
|
||||
FreeBSD: '/home'
|
||||
SunOS: '/home'
|
||||
Darwin: '/Users'
|
Loading…
Reference in a new issue