From 602a618e6056791c34bda606dd4a0f1e215a4b53 Mon Sep 17 00:00:00 2001 From: Dave Thelen Date: Thu, 26 Oct 2017 03:10:58 -0400 Subject: [PATCH] eos_user: sends user secret first on user creation fixes #31680 (#32162) * fix command order * add integration test * test cleanup * remove redudant commands --- lib/ansible/modules/network/eos/eos_user.py | 8 +++--- .../targets/eos_user/tests/cli/basic.yaml | 26 ++++++++++++++++--- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/lib/ansible/modules/network/eos/eos_user.py b/lib/ansible/modules/network/eos/eos_user.py index 5986f66a3b5..c4ece90ae7f 100644 --- a/lib/ansible/modules/network/eos/eos_user.py +++ b/lib/ansible/modules/network/eos/eos_user.py @@ -181,16 +181,16 @@ def map_obj_to_commands(updates, module): commands.append('no username %s' % want['name']) continue + if needs_update('configured_password'): + if update_password == 'always' or not have: + add('secret %s' % want['configured_password']) + if needs_update('role'): add('role %s' % want['role']) if needs_update('privilege'): add('privilege %s' % want['privilege']) - if needs_update('configured_password'): - if update_password == 'always' or not have: - add('secret %s' % want['configured_password']) - if needs_update('sshkey'): add('sshkey %s' % want['sshkey']) diff --git a/test/integration/targets/eos_user/tests/cli/basic.yaml b/test/integration/targets/eos_user/tests/cli/basic.yaml index a1f1e50c614..fe8bc9b5a67 100644 --- a/test/integration/targets/eos_user/tests/cli/basic.yaml +++ b/test/integration/targets/eos_user/tests/cli/basic.yaml @@ -5,9 +5,10 @@ - no username ansibletest1 - no username ansibletest2 - no username ansibletest3 + - no username ansibletest4 provider: "{{ cli }}" -- name: Create user +- name: Create user with role eos_user: name: ansibletest1 privilege: 15 @@ -22,9 +23,27 @@ that: - 'result.changed == true' - '"username" in result.commands[0]' - - '"role network-operator" in result.commands[0]' + - '"secret" in result.commands[0]' + - '"role network-operator" in result.commands[1]' + - '"privilege 15" in result.commands[2]' + +- name: Create user with priv level and update_password + eos_user: + name: ansibletest4 + privilege: 15 + state: present + configured_password: test1 + authorize: yes + update_password: on_create + provider: "{{ cli }}" + register: result + +- assert: + that: + - 'result.changed == true' + - '"username" in result.commands[0]' + - '"secret" in result.commands[0]' - '"privilege 15" in result.commands[1]' - - '"secret" in result.commands[2]' - name: Collection of users eos_user: @@ -69,4 +88,5 @@ - no username ansibletest1 - no username ansibletest2 - no username ansibletest3 + - no username ansibletest4 provider: "{{ cli }}"