mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
module should fail if eos_user is added without configured_password or nopassword or sshkey (#28780)
* module should fail if eos_user is added without configured_password or nopassword or sshkey Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * fix eos_user unit test Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * fix eos_user integration test Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
This commit is contained in:
parent
cef40cb54a
commit
252efcebf5
3 changed files with 41 additions and 11 deletions
|
@ -200,6 +200,11 @@ def map_obj_to_commands(updates, module):
|
||||||
else:
|
else:
|
||||||
add('no username %s nopassword' % want['name'])
|
add('no username %s nopassword' % want['name'])
|
||||||
|
|
||||||
|
if want.get('state') == 'present' and want.get('name'):
|
||||||
|
value = [want.get('configured_password'), want.get('nopassword'), want.get('sshkey')]
|
||||||
|
if all(v is None for v in value) is True:
|
||||||
|
module.fail_json(msg='configured_password, sshkey or nopassword should be provided')
|
||||||
|
|
||||||
return commands
|
return commands
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
privilege: 15
|
privilege: 15
|
||||||
role: network-operator
|
role: network-operator
|
||||||
state: present
|
state: present
|
||||||
|
configured_password: test1
|
||||||
authorize: yes
|
authorize: yes
|
||||||
provider: "{{ cli }}"
|
provider: "{{ cli }}"
|
||||||
register: result
|
register: result
|
||||||
|
@ -20,13 +21,16 @@
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- 'result.changed == true'
|
- 'result.changed == true'
|
||||||
- 'result.commands == ["username ansibletest1 role network-operator", "username ansibletest1 privilege 15"]'
|
- '"username" in result.commands[0]'
|
||||||
|
- '"role network-operator" in result.commands[0]'
|
||||||
|
- '"privilege 15" in result.commands[1]'
|
||||||
|
- '"secret" in result.commands[2]'
|
||||||
|
|
||||||
- name: Collection of users
|
- name: Collection of users
|
||||||
eos_user:
|
eos_user:
|
||||||
aggregate:
|
aggregate:
|
||||||
- name: ansibletest2
|
- { name: ansibletest2, configured_password: test2 }
|
||||||
- name: ansibletest3
|
- { name: ansibletest3, configured_password: test3 }
|
||||||
authorize: yes
|
authorize: yes
|
||||||
state: present
|
state: present
|
||||||
role: network-operator
|
role: network-operator
|
||||||
|
@ -36,7 +40,28 @@
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- 'result.changed == true'
|
- 'result.changed == true'
|
||||||
- 'result.commands == ["username ansibletest2 role network-operator", "username ansibletest3 role network-operator"]'
|
- '"username" in result.commands[0]'
|
||||||
|
- '"role network-operator" in result.commands[0]'
|
||||||
|
- '"secret" in result.commands[1]'
|
||||||
|
- '"username" in result.commands[2]'
|
||||||
|
- '"role network-operator" in result.commands[2]'
|
||||||
|
- '"secret" in result.commands[3]'
|
||||||
|
|
||||||
|
- name: Add user without password or nopassword arg(Should fail)
|
||||||
|
eos_user:
|
||||||
|
name: faileduser1
|
||||||
|
privilege: 15
|
||||||
|
state: present
|
||||||
|
authorize: yes
|
||||||
|
provider: "{{ cli }}"
|
||||||
|
ignore_errors: yes
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- 'result.changed == false'
|
||||||
|
- 'result.failed == true'
|
||||||
|
- 'result.msg == "configured_password, sshkey or nopassword should be provided"'
|
||||||
|
|
||||||
- name: tearDown
|
- name: tearDown
|
||||||
eos_config:
|
eos_config:
|
||||||
|
|
|
@ -59,12 +59,12 @@ class TestEosUserModule(TestEosModule):
|
||||||
self.execute_module(changed=True, commands=commands)
|
self.execute_module(changed=True, commands=commands)
|
||||||
|
|
||||||
def test_eos_user_privilege(self):
|
def test_eos_user_privilege(self):
|
||||||
set_module_args(dict(name='ansible', privilege=15))
|
set_module_args(dict(name='ansible', privilege=15, configured_password='test'))
|
||||||
commands = ['username ansible privilege 15']
|
result = self.execute_module(changed=True)
|
||||||
self.execute_module(changed=True, commands=commands)
|
self.assertIn('username ansible privilege 15', result['commands'])
|
||||||
|
|
||||||
def test_eos_user_privilege_invalid(self):
|
def test_eos_user_privilege_invalid(self):
|
||||||
set_module_args(dict(name='ansible', privilege=25))
|
set_module_args(dict(name='ansible', privilege=25, configured_password='test'))
|
||||||
self.execute_module(failed=True)
|
self.execute_module(failed=True)
|
||||||
|
|
||||||
def test_eos_user_purge(self):
|
def test_eos_user_purge(self):
|
||||||
|
@ -73,9 +73,9 @@ class TestEosUserModule(TestEosModule):
|
||||||
self.execute_module(changed=True, commands=commands)
|
self.execute_module(changed=True, commands=commands)
|
||||||
|
|
||||||
def test_eos_user_role(self):
|
def test_eos_user_role(self):
|
||||||
set_module_args(dict(name='ansible', role='test'))
|
set_module_args(dict(name='ansible', role='test', configured_password='test'))
|
||||||
commands = ['username ansible role test']
|
result = self.execute_module(changed=True)
|
||||||
self.execute_module(changed=True, commands=commands)
|
self.assertIn('username ansible role test', result['commands'])
|
||||||
|
|
||||||
def test_eos_user_sshkey(self):
|
def test_eos_user_sshkey(self):
|
||||||
set_module_args(dict(name='ansible', sshkey='test'))
|
set_module_args(dict(name='ansible', sshkey='test'))
|
||||||
|
|
Loading…
Reference in a new issue