Fix diff_ignore_lines option issue for candidate configuration (#45201)
* Fix diff_ignore_lines option issue for candidate configuration * diff_ignore_lines option is to handle the running config fetch from remote host and ignore the lines that are auto updated eg: commit time and date * This option should not be used while processing candidate (input) configuration * Fix review comment
This commit is contained in:
parent
64c594d226
commit
a3c137c1ab
5 changed files with 34 additions and 4 deletions
|
@ -214,7 +214,7 @@ class Cliconf(CliconfBase):
|
|||
raise ValueError("'replace' value %s in invalid, valid values are %s" % (diff_replace, ', '.join(option_values['diff_replace'])))
|
||||
|
||||
# prepare candidate configuration
|
||||
candidate_obj = NetworkConfig(indent=3, ignore_lines=diff_ignore_lines)
|
||||
candidate_obj = NetworkConfig(indent=3)
|
||||
candidate_obj.load(candidate)
|
||||
|
||||
if running and diff_match != 'none' and diff_replace != 'config':
|
||||
|
|
|
@ -105,7 +105,7 @@ class Cliconf(CliconfBase):
|
|||
raise ValueError("'replace' value %s in invalid, valid values are %s" % (diff_replace, ', '.join(option_values['diff_replace'])))
|
||||
|
||||
# prepare candidate configuration
|
||||
candidate_obj = NetworkConfig(indent=1, ignore_lines=diff_ignore_lines)
|
||||
candidate_obj = NetworkConfig(indent=1)
|
||||
want_src, want_banners = self._extract_banners(candidate)
|
||||
candidate_obj.load(want_src)
|
||||
|
||||
|
|
|
@ -132,7 +132,7 @@ class Cliconf(CliconfBase):
|
|||
|
||||
# prepare candidate configuration
|
||||
sanitized_candidate = sanitize_config(candidate)
|
||||
candidate_obj = NetworkConfig(indent=1, ignore_lines=diff_ignore_lines)
|
||||
candidate_obj = NetworkConfig(indent=1)
|
||||
candidate_obj.load(sanitized_candidate)
|
||||
|
||||
if running and diff_match != 'none':
|
||||
|
|
|
@ -115,7 +115,7 @@ class Cliconf(CliconfBase):
|
|||
raise ValueError("'replace' value %s in invalid, valid values are %s" % (diff_replace, ', '.join(option_values['diff_replace'])))
|
||||
|
||||
# prepare candidate configuration
|
||||
candidate_obj = NetworkConfig(indent=2, ignore_lines=diff_ignore_lines)
|
||||
candidate_obj = NetworkConfig(indent=2)
|
||||
candidate_obj.load(candidate)
|
||||
|
||||
if running and diff_match != 'none' and diff_replace != 'config':
|
||||
|
|
|
@ -37,4 +37,34 @@
|
|||
# FIXME Bug https://github.com/ansible/ansible/issues/19382
|
||||
# - "result.updates is not defined"
|
||||
|
||||
- name: check for empty diff
|
||||
ios_config:
|
||||
running_config: |
|
||||
service timestamps debug datetime msec
|
||||
service timestamps log datetime msec
|
||||
lines:
|
||||
- service timestamps debug datetime msec
|
||||
- service timestamps log datetime msec
|
||||
check_mode: True
|
||||
register: result
|
||||
- assert:
|
||||
that:
|
||||
- "result.updates is undefined"
|
||||
|
||||
- name: check for diff with ignore lines for running config
|
||||
ios_config:
|
||||
running_config: |
|
||||
service timestamps debug datetime msec
|
||||
service timestamps log datetime msec
|
||||
lines:
|
||||
- service timestamps debug datetime msec
|
||||
- service timestamps log datetime msec
|
||||
diff_ignore_lines: service timestamps log datetime msec
|
||||
check_mode: True
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "'service timestamps log datetime msec' in result.updates"
|
||||
|
||||
- debug: msg="END cli/src_basic.yaml on connection={{ ansible_connection }}"
|
||||
|
|
Loading…
Reference in a new issue