mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 21:00:22 -07:00
code cleanup for --diff
and --check
modes (#33665)
* code cleanup for `--diff` and `--check` modes * fixes UT to remove exec_command
This commit is contained in:
parent
4d67cdd1f7
commit
012a96dabd
9 changed files with 68 additions and 55 deletions
|
@ -83,10 +83,9 @@ import collections
|
|||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.network.iosxr.iosxr import get_config, load_config
|
||||
from ansible.module_utils.network.iosxr.iosxr import get_config_diff, commit_config
|
||||
from ansible.module_utils.network.iosxr.iosxr import iosxr_argument_spec, discard_config
|
||||
from ansible.module_utils.network.iosxr.iosxr import build_xml, is_cliconf, is_netconf
|
||||
from ansible.module_utils.network.iosxr.iosxr import etree_find, etree_findall
|
||||
from ansible.module_utils.network.iosxr.iosxr import etree_find
|
||||
|
||||
|
||||
class ConfigBase(object):
|
||||
|
@ -125,8 +124,10 @@ class CliConfiguration(ConfigBase):
|
|||
commands.append(banner_cmd)
|
||||
self._result['commands'] = commands
|
||||
if commands:
|
||||
if not self._module.check_mode:
|
||||
load_config(self._module, commands, self._result['warnings'], commit=True)
|
||||
commit = not self._module.check_mode
|
||||
diff = load_config(self._module, commands, commit=commit)
|
||||
if diff:
|
||||
self._result['diff'] = dict(prepared=diff)
|
||||
self._result['changed'] = True
|
||||
|
||||
def map_config_to_obj(self):
|
||||
|
@ -184,19 +185,15 @@ class NCConfiguration(ConfigBase):
|
|||
_edit_filter = build_xml('banners', xmap=self._banners_meta, params=self._module.params, opcode=opcode)
|
||||
|
||||
if _edit_filter is not None:
|
||||
if not self._module.check_mode:
|
||||
load_config(self._module, _edit_filter, self._result['warnings'])
|
||||
candidate = get_config(self._module, source='candidate', config_filter=_get_filter)
|
||||
commit = not self._module.check_mode
|
||||
diff = load_config(self._module, _edit_filter, commit=commit, running=running, nc_get_filter=_get_filter)
|
||||
|
||||
diff = get_config_diff(self._module, running, candidate)
|
||||
if diff:
|
||||
commit_config(self._module)
|
||||
self._result['changed'] = True
|
||||
self._result['commands'] = _edit_filter
|
||||
if self._module._diff:
|
||||
self._result['diff'] = {'prepared': diff}
|
||||
else:
|
||||
discard_config(self._module)
|
||||
if diff:
|
||||
self._result['commands'] = _edit_filter
|
||||
if self._module._diff:
|
||||
self._result['diff'] = dict(prepared=diff)
|
||||
|
||||
self._result['changed'] = True
|
||||
|
||||
def run(self):
|
||||
self.map_params_to_obj()
|
||||
|
@ -223,7 +220,7 @@ def main():
|
|||
supports_check_mode=True)
|
||||
|
||||
if is_cliconf(module):
|
||||
module.deprecate("cli support for 'iosxr_banner' is deprecated. Use transport netconf instead', version='4 releases from v2.5")
|
||||
module.deprecate(msg="cli support for 'iosxr_banner' is deprecated. Use transport netconf instead", version="4 releases from v2.5")
|
||||
config_object = CliConfiguration(module)
|
||||
elif is_netconf(module):
|
||||
config_object = NCConfiguration(module)
|
||||
|
|
|
@ -246,11 +246,12 @@ def run(module, result):
|
|||
|
||||
result['commands'] = commands
|
||||
|
||||
diff = load_config(module, commands, result['warnings'],
|
||||
not check_mode, replace_config, comment, admin)
|
||||
commit = not check_mode
|
||||
diff = load_config(module, commands, commit=commit, replace=replace_config,
|
||||
comment=comment, admin=admin)
|
||||
if diff:
|
||||
result['diff'] = dict(prepared=diff)
|
||||
result['changed'] = True
|
||||
result['changed'] = True
|
||||
|
||||
|
||||
def main():
|
||||
|
|
|
@ -400,8 +400,10 @@ def main():
|
|||
result['warnings'] = warnings
|
||||
|
||||
if commands:
|
||||
if not module.check_mode:
|
||||
load_config(module, commands, result['warnings'], commit=True)
|
||||
commit = not module.check_mode
|
||||
diff = load_config(module, commands, commit=commit)
|
||||
if diff:
|
||||
result['diff'] = dict(prepared=diff)
|
||||
result['changed'] = True
|
||||
|
||||
failed_conditions = check_declarative_intent_params(module, want, result)
|
||||
|
|
|
@ -361,8 +361,10 @@ def main():
|
|||
result['warnings'] = warnings
|
||||
|
||||
if commands:
|
||||
if not module.check_mode:
|
||||
load_config(module, commands, result['warnings'], commit=True)
|
||||
commit = not module.check_mode
|
||||
diff = load_config(module, commands, commit=commit)
|
||||
if diff:
|
||||
result['diff'] = dict(prepared=diff)
|
||||
result['changed'] = True
|
||||
|
||||
module.exit_json(**result)
|
||||
|
|
|
@ -74,7 +74,6 @@ commands:
|
|||
import re
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils.connection import exec_command
|
||||
from ansible.module_utils.network.iosxr.iosxr import iosxr_argument_spec
|
||||
from ansible.module_utils.network.iosxr.iosxr import get_config, load_config
|
||||
from ansible.module_utils.six import iteritems
|
||||
|
@ -82,7 +81,7 @@ from ansible.module_utils.six import iteritems
|
|||
USE_PERSISTENT_CONNECTION = True
|
||||
|
||||
|
||||
def map_obj_to_commands(updates, module):
|
||||
def map_obj_to_commands(updates):
|
||||
want, have = updates
|
||||
commands = list()
|
||||
|
||||
|
@ -186,12 +185,14 @@ def main():
|
|||
|
||||
want = map_params_to_obj(module)
|
||||
have = map_config_to_obj(module)
|
||||
commands = map_obj_to_commands((want, have), module)
|
||||
commands = map_obj_to_commands((want, have))
|
||||
result['commands'] = commands
|
||||
|
||||
if commands:
|
||||
if not module.check_mode:
|
||||
diff = load_config(module, commands, result['warnings'], commit=True)
|
||||
commit = not module.check_mode
|
||||
diff = load_config(module, commands, commit=commit)
|
||||
if diff:
|
||||
result['diff'] = dict(prepared=diff)
|
||||
result['changed'] = True
|
||||
|
||||
module.exit_json(**result)
|
||||
|
|
|
@ -242,8 +242,10 @@ def main():
|
|||
result['commands'] = commands
|
||||
|
||||
if commands:
|
||||
if not module.check_mode:
|
||||
load_config(module, commands, result['warnings'], commit=True)
|
||||
commit = not module.check_mode
|
||||
diff = load_config(module, commands, commit=commit)
|
||||
if diff:
|
||||
result['diff'] = dict(prepared=diff)
|
||||
result['changed'] = True
|
||||
|
||||
module.exit_json(**result)
|
||||
|
|
|
@ -475,8 +475,10 @@ def main():
|
|||
module.fail_json(msg='cannot delete the `admin` account')
|
||||
|
||||
if commands:
|
||||
if not module.check_mode:
|
||||
load_config(module, commands, result['warnings'], commit=True)
|
||||
commit = not module.check_mode
|
||||
diff = load_config(module, commands, commit=commit)
|
||||
if diff:
|
||||
result['diff'] = dict(prepared=diff)
|
||||
result['changed'] = True
|
||||
|
||||
if module.params['state'] == 'present' and (module.params['public_key_contents'] or module.params['public_key']):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue