mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-23 05:10:22 -07:00
Fix 'defaults' option in the nxos_config module (#51076)
* Fix 'defaults' option in the nxos_config module Nxos get_config is allways called with the 'all' option. * Fix flag's calculation * Add tests * nxos_config: the 'backup' option take into account the value of 'defaults' option If 'defaults' option is true, the running-config backup is done with the all keyword.
This commit is contained in:
parent
7eab04e975
commit
87a01df6ad
2 changed files with 29 additions and 5 deletions
|
@ -263,13 +263,12 @@ from ansible.module_utils.network.nxos.nxos import check_args as nxos_check_args
|
||||||
from ansible.module_utils.network.common.utils import to_list
|
from ansible.module_utils.network.common.utils import to_list
|
||||||
|
|
||||||
|
|
||||||
def get_running_config(module, config=None):
|
def get_running_config(module, config=None, flags=None):
|
||||||
contents = module.params['running_config']
|
contents = module.params['running_config']
|
||||||
if not contents:
|
if not contents:
|
||||||
if not module.params['defaults'] and config:
|
if config:
|
||||||
contents = config
|
contents = config
|
||||||
else:
|
else:
|
||||||
flags = ['all']
|
|
||||||
contents = get_config(module, flags=flags)
|
contents = get_config(module, flags=flags)
|
||||||
return contents
|
return contents
|
||||||
|
|
||||||
|
@ -365,13 +364,14 @@ def main():
|
||||||
path = module.params['parents']
|
path = module.params['parents']
|
||||||
connection = get_connection(module)
|
connection = get_connection(module)
|
||||||
contents = None
|
contents = None
|
||||||
|
flags = ['all'] if module.params['defaults'] else []
|
||||||
replace_src = module.params['replace_src']
|
replace_src = module.params['replace_src']
|
||||||
if replace_src:
|
if replace_src:
|
||||||
if module.params['replace'] != 'config':
|
if module.params['replace'] != 'config':
|
||||||
module.fail_json(msg='replace: config is required with replace_src')
|
module.fail_json(msg='replace: config is required with replace_src')
|
||||||
|
|
||||||
if module.params['backup'] or (module._diff and module.params['diff_against'] == 'running'):
|
if module.params['backup'] or (module._diff and module.params['diff_against'] == 'running'):
|
||||||
contents = get_config(module)
|
contents = get_config(module, flags=flags)
|
||||||
config = NetworkConfig(indent=2, contents=contents)
|
config = NetworkConfig(indent=2, contents=contents)
|
||||||
if module.params['backup']:
|
if module.params['backup']:
|
||||||
result['__backup__'] = contents
|
result['__backup__'] = contents
|
||||||
|
@ -382,7 +382,7 @@ def main():
|
||||||
|
|
||||||
commit = not module.check_mode
|
commit = not module.check_mode
|
||||||
candidate = get_candidate(module)
|
candidate = get_candidate(module)
|
||||||
running = get_running_config(module, contents)
|
running = get_running_config(module, contents, flags=flags)
|
||||||
if replace_src:
|
if replace_src:
|
||||||
commands = candidate.split('\n')
|
commands = candidate.split('\n')
|
||||||
result['commands'] = result['updates'] = commands
|
result['commands'] = result['updates'] = commands
|
||||||
|
|
|
@ -198,3 +198,27 @@ class TestNxosConfigModule(TestNxosModule):
|
||||||
self.assertEqual(self.save_config.call_count, 0)
|
self.assertEqual(self.save_config.call_count, 0)
|
||||||
self.assertEqual(self.get_config.call_count, 0)
|
self.assertEqual(self.get_config.call_count, 0)
|
||||||
self.assertEqual(self.load_config.call_count, 0)
|
self.assertEqual(self.load_config.call_count, 0)
|
||||||
|
|
||||||
|
def test_nxos_config_defaults_false(self):
|
||||||
|
set_module_args(dict(lines=['hostname localhost'], defaults=False))
|
||||||
|
result = self.execute_module(changed=True)
|
||||||
|
self.assertEqual(self.get_config.call_count, 1)
|
||||||
|
self.assertEqual(self.get_config.call_args[1], dict(flags=[]))
|
||||||
|
|
||||||
|
def test_nxos_config_defaults_true(self):
|
||||||
|
set_module_args(dict(lines=['hostname localhost'], defaults=True))
|
||||||
|
result = self.execute_module(changed=True)
|
||||||
|
self.assertEqual(self.get_config.call_count, 1)
|
||||||
|
self.assertEqual(self.get_config.call_args[1], dict(flags=['all']))
|
||||||
|
|
||||||
|
def test_nxos_config_defaults_false_backup_true(self):
|
||||||
|
set_module_args(dict(lines=['hostname localhost'], defaults=False, backup=True))
|
||||||
|
result = self.execute_module(changed=True)
|
||||||
|
self.assertEqual(self.get_config.call_count, 1)
|
||||||
|
self.assertEqual(self.get_config.call_args[1], dict(flags=[]))
|
||||||
|
|
||||||
|
def test_nxos_config_defaults_true_backup_true(self):
|
||||||
|
set_module_args(dict(lines=['hostname localhost'], defaults=True, backup=True))
|
||||||
|
result = self.execute_module(changed=True)
|
||||||
|
self.assertEqual(self.get_config.call_count, 1)
|
||||||
|
self.assertEqual(self.get_config.call_args[1], dict(flags=['all']))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue