Fix vyos banner idempotent (#26338)

* fix vyos_banner idempotent

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* fix vyos_banner unit test

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
pull/26341/head
Trishna Guha 7 years ago committed by GitHub
parent 483346d94b
commit 1b427aa419

@ -94,16 +94,17 @@ def spec_to_commands(updates, module):
want, have = updates
state = module.params['state']
if state == 'absent' or (state == 'absent' and
'text' in have.keys() and have['text']):
commands.append('delete system login banner %s' % module.params['banner'])
if state == 'absent':
if have.get('state') != 'absent' or (have.get('state') != 'absent' and
'text' in have.keys() and have['text']):
commands.append('delete system login banner %s' % module.params['banner'])
elif state == 'present':
if want['text'] and (want['text'] != have.get('text')):
banner_cmd = 'set system login banner %s ' % module.params['banner']
banner_cmd += '"'
banner_cmd += "'"
banner_cmd += want['text'].strip()
banner_cmd += '"'
banner_cmd += "'"
commands.append(banner_cmd)
return commands
@ -120,7 +121,7 @@ def config_to_dict(module):
output = match
if output:
obj['text'] = output
obj['text'] = output[0][1:-1]
obj['state'] = 'present'
return obj

@ -44,10 +44,10 @@ class TestVyosBannerModule(TestVyosModule):
def test_vyos_banner_create(self):
set_module_args(dict(banner='pre-login', text='test\nbanner\nstring'))
commands = ['set system login banner pre-login "test\nbanner\nstring"']
commands = ["set system login banner pre-login 'test\nbanner\nstring'"]
self.execute_module(changed=True, commands=commands)
def test_vyos_banner_remove(self):
set_module_args(dict(banner='pre-login', state='absent'))
commands = ['delete system login banner pre-login']
self.execute_module(changed=True, commands=commands)
self.execute_module(changed=False, commands=[])

Loading…
Cancel
Save