diff --git a/netutils/__init__.py b/netutils/__init__.py index 19c175f2..2c1b8acd 100644 --- a/netutils/__init__.py +++ b/netutils/__init__.py @@ -1,3 +1,3 @@ """Initialization file for library.""" -__version__ = "0.2.2" +__version__ = "0.2.3" diff --git a/netutils/config/parser.py b/netutils/config/parser.py index d89def98..9a9b9e5e 100644 --- a/netutils/config/parser.py +++ b/netutils/config/parser.py @@ -512,7 +512,7 @@ def _update_same_line_children_configs(self): """Update parents in ``self.config_lines`` per ``self.same_line_children``.""" new_config_lines = [] for line in self.config_lines: - if line in self.same_line_children: + if line in self.same_line_children and line.config_line[0].isspace(): previous_line = new_config_lines[-1] previous_config_line = previous_line.config_line current_parents = previous_line.parents + (previous_config_line,) diff --git a/pyproject.toml b/pyproject.toml index 447f8410..5247580a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "netutils" -version = "0.2.2" +version = "0.2.3" description = "Common helper functions useful in network automation." authors = ["Network to Code, LLC "] license = "Apache-2.0" diff --git a/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_backup.txt b/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_backup.txt new file mode 100644 index 00000000..dc10770d --- /dev/null +++ b/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_backup.txt @@ -0,0 +1,9 @@ +! +logging history size 500 +logging origin-id hostname +logging source-interface Loopback0 +logging host 10.5.84.24 +! +logging trap informational +! +! \ No newline at end of file diff --git a/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_feature.py b/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_feature.py new file mode 100644 index 00000000..77558d93 --- /dev/null +++ b/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_feature.py @@ -0,0 +1,3 @@ +features = [ + {"name": "log", "ordered": True, "section": ["logging ", "no logging "]}, +] diff --git a/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_intended.txt b/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_intended.txt new file mode 100644 index 00000000..f155afcc --- /dev/null +++ b/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_intended.txt @@ -0,0 +1,9 @@ +logging source-interface Loopback0 +logging host 10.1.1.1 +! +logging trap informational +! +snmp-server community <> RO SNMP_ACL_RO +snmp-server community <> RW SNMP_ACL_RW +snmp-server community <> RO SNMP_ACL_RO +! \ No newline at end of file diff --git a/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_received.json b/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_received.json new file mode 100644 index 00000000..640ce7c7 --- /dev/null +++ b/tests/unit/mock/config/compliance/compliance/cisco_ios/ios_logging_received.json @@ -0,0 +1,12 @@ +{ + "log": { + "compliant": false, + "missing": "logging host 10.1.1.1", + "extra": "logging history size 500\nlogging origin-id hostname\nlogging host 10.5.84.24", + "cannot_parse": true, + "unordered_compliant": false, + "ordered_compliant": false, + "actual": "logging history size 500\nlogging origin-id hostname\nlogging source-interface Loopback0\nlogging host 10.5.84.24\nlogging trap informational", + "intended": "logging source-interface Loopback0\nlogging host 10.1.1.1\nlogging trap informational" + } +} \ No newline at end of file