Add 'update' parameter in junos_config module (#19038)
* Fix # #5839 Add 'update' parameter in junos_config module Add update parameter in junos_config module which supports configuration action like merge, replace and overwrite. * Fix documentation issue * Fix review comment to add replace argument Make replace and update argument mutually exclusive, to support replace for backward compatibility.
This commit is contained in:
parent
f831ef692c
commit
c3c4ae87dd
1 changed files with 31 additions and 5 deletions
|
@ -102,7 +102,8 @@ options:
|
||||||
from this module.
|
from this module.
|
||||||
- Note this argument should be considered deprecated. To achieve
|
- Note this argument should be considered deprecated. To achieve
|
||||||
the equivalent, set the I(update) argument to C(replace). This argument
|
the equivalent, set the I(update) argument to C(replace). This argument
|
||||||
will be removed in a future release.
|
will be removed in a future release. The C(replace) and C(update) argument
|
||||||
|
is mutually exclusive.
|
||||||
required: false
|
required: false
|
||||||
choices: ['yes', 'no']
|
choices: ['yes', 'no']
|
||||||
default: false
|
default: false
|
||||||
|
@ -117,6 +118,24 @@ options:
|
||||||
default: no
|
default: no
|
||||||
choices: ['yes', 'no']
|
choices: ['yes', 'no']
|
||||||
version_added: "2.2"
|
version_added: "2.2"
|
||||||
|
update:
|
||||||
|
description:
|
||||||
|
- This argument will decide how to load the configuration
|
||||||
|
data particulary when the candidate configuration and loaded
|
||||||
|
configuration contain conflicting statements. Following are
|
||||||
|
accepted values.
|
||||||
|
C(merge) combines the data in the loaded configuration with the
|
||||||
|
candidate configuration. If statements in the loaded configuration
|
||||||
|
conflict with statements in the candidate configuration, the loaded
|
||||||
|
statements replace the candidate ones.
|
||||||
|
C(overwrite) discards the entire candidate configuration and replaces
|
||||||
|
it with the loaded configuration.
|
||||||
|
C(replace) substitutes each hierarchy level in the loaded configuration
|
||||||
|
for the corresponding level.
|
||||||
|
required: false
|
||||||
|
default: merge
|
||||||
|
choices: ['merge', 'overwrite', 'replace']
|
||||||
|
version_added: "2.3"
|
||||||
requirements:
|
requirements:
|
||||||
- junos-eznc
|
- junos-eznc
|
||||||
notes:
|
notes:
|
||||||
|
@ -242,8 +261,9 @@ def load_config(module, result):
|
||||||
kwargs = dict()
|
kwargs = dict()
|
||||||
kwargs['comment'] = module.params['comment']
|
kwargs['comment'] = module.params['comment']
|
||||||
kwargs['confirm'] = module.params['confirm']
|
kwargs['confirm'] = module.params['confirm']
|
||||||
kwargs['replace'] = module.params['replace']
|
kwargs[module.params['update']] = True
|
||||||
kwargs['commit'] = not module.check_mode
|
kwargs['commit'] = not module.check_mode
|
||||||
|
kwargs['replace'] = module.params['replace']
|
||||||
|
|
||||||
if module.params['src']:
|
if module.params['src']:
|
||||||
config_format = module.params['src_format'] or guess_format(str(candidate))
|
config_format = module.params['src_format'] or guess_format(str(candidate))
|
||||||
|
@ -306,7 +326,9 @@ def main():
|
||||||
src_format=dict(choices=['xml', 'text', 'set', 'json']),
|
src_format=dict(choices=['xml', 'text', 'set', 'json']),
|
||||||
|
|
||||||
# update operations
|
# update operations
|
||||||
|
update=dict(default='merge', choices=['merge', 'overwrite', 'replace']),
|
||||||
replace=dict(default=False, type='bool'),
|
replace=dict(default=False, type='bool'),
|
||||||
|
|
||||||
confirm=dict(default=0, type='int'),
|
confirm=dict(default=0, type='int'),
|
||||||
comment=dict(default=DEFAULT_COMMENT),
|
comment=dict(default=DEFAULT_COMMENT),
|
||||||
|
|
||||||
|
@ -320,9 +342,13 @@ def main():
|
||||||
|
|
||||||
mutually_exclusive = [('lines', 'rollback'), ('lines', 'zeroize'),
|
mutually_exclusive = [('lines', 'rollback'), ('lines', 'zeroize'),
|
||||||
('rollback', 'zeroize'), ('lines', 'src'),
|
('rollback', 'zeroize'), ('lines', 'src'),
|
||||||
('src', 'zeroize'), ('src', 'rollback')]
|
('src', 'zeroize'), ('src', 'rollback'),
|
||||||
|
('update', 'replace')]
|
||||||
|
|
||||||
required_if = [('replace', True, ['src'])]
|
required_if = [('replace', True, ['src']),
|
||||||
|
('update', 'merge', ['src']),
|
||||||
|
('update', 'overwrite', ['src']),
|
||||||
|
('update', 'replace', ['src'])]
|
||||||
|
|
||||||
module = NetworkModule(argument_spec=argument_spec,
|
module = NetworkModule(argument_spec=argument_spec,
|
||||||
mutually_exclusive=mutually_exclusive,
|
mutually_exclusive=mutually_exclusive,
|
||||||
|
|
Loading…
Reference in a new issue