Skip to content

Commit

Permalink
Rm overmatching tacacs-server idemopotency rule for nxos
Browse files Browse the repository at this point in the history
This rule was an attempt at addressing idempotency in tacacs-server commands but is far too broad. A working solution would require comparing the ip address of the tacacs-server in the command between the generated and running config lines. There isn't a mechanism for this included in the project, yet. In the past, I have addressed these types of issues with a series of functions that fix up specific problems after the remedations config has been built.
  • Loading branch information
Andrew Edwards committed May 16, 2022
1 parent dc554c3 commit 7e67f2a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
1 change: 0 additions & 1 deletion hier_config/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,6 @@
"ip telnet source-interface",
"ip tacacs source-interface",
"logging source-interface",
"tacacs-server",
],
"re_search": "^spanning-tree vlan ([\\d,-]+) priority",
}
Expand Down
26 changes: 26 additions & 0 deletions tests/test_various.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from hier_config import HConfig, Host


def test_issue104() -> None:
running_config_raw = (
"tacacs-server deadtime 3\n" "tacacs-server host 192.168.1.99 key 7 Test12345\n"
)
generated_config_raw = (
"tacacs-server host 192.168.1.98 key 0 Test135 timeout 3\n"
"tacacs-server host 192.168.100.98 key 0 test135 timeout 3\n"
)

host = Host(hostname="test", os="nxos")
running_config = HConfig(host=host)
running_config.load_from_string(running_config_raw)
generated_config = HConfig(host=host)
generated_config.load_from_string(generated_config_raw)
rem = running_config.config_to_get_to(generated_config)
expected_rem_lines = {
"no tacacs-server deadtime 3",
"no tacacs-server host 192.168.1.99 key 7 Test12345",
"tacacs-server host 192.168.1.98 key 0 Test135 timeout 3",
"tacacs-server host 192.168.100.98 key 0 test135 timeout 3",
}
rem_lines = {line.cisco_style_text() for line in rem.all_children()}
assert expected_rem_lines == rem_lines

0 comments on commit 7e67f2a

Please sign in to comment.