diff --git a/napalm_yang/parsers/base.py b/napalm_yang/parsers/base.py index 1229b204..977d70df 100644 --- a/napalm_yang/parsers/base.py +++ b/napalm_yang/parsers/base.py @@ -39,9 +39,6 @@ def resolve_path(self, my_dict, path, default=None, check_presence=False): for k, v in iterator: if k.startswith("#"): continue - if not isinstance(v, dict): - result.append((k, v)) - continue r = self.resolve_path(v, ".".join(path_split), default, check_presence) if not r: break diff --git a/test/unit/test_parser/006_ios_ip_route/example.yaml b/test/unit/test_parser/007_ios_ip_route/example.yaml similarity index 78% rename from test/unit/test_parser/006_ios_ip_route/example.yaml rename to test/unit/test_parser/007_ios_ip_route/example.yaml index 8e861f5b..19cc7899 100644 --- a/test/unit/test_parser/006_ios_ip_route/example.yaml +++ b/test/unit/test_parser/007_ios_ip_route/example.yaml @@ -98,7 +98,7 @@ data: value: 2.2.2.0/24 bookmarks: parent: - '#text': FastEthernet0/2 + '#text': FastEthernet0/2 100 FastEthernet0/2: '#standalone': true mask: 255.255.255.0 @@ -122,38 +122,46 @@ data: mask: 255.255.255.0 prefix: 3.3.3.0 rule: - - path: "?interface_ref.?next_hop_addr" - regexp: "^(?P(?P[a-zA-Z][\\w\\-/]+(?::\\d+)?(?:\\.\\d+)?)\\s(?P(?:\\d+\\.\\d+\\.\\d+\\.\\d+|[0-9a-fA-F:]+:[0-9a-fA-F:]+)))$" - key: "{{ interface_ref }} {{ next_hop_addr|normalize_address }}" - - path: "?interface_ref" - regexp: "^(?P(?P[a-zA-Z][\\w\\-/]+(?::\\d+)?(?:\\.\\d+)?))$" - key: "{{ interface_ref }}" - - path: "?next_hop_addr" - regexp: "^(?P(?P(?:\\d+\\.\\d+\\.\\d+\\.\\d+|[0-9a-fA-F:]+:[0-9a-fA-F:]+)))$" - key: "{{ next_hop_addr|normalize_address }}" + - path: "" + regexp: "^(?P(?P[a-zA-Z][\\w\\-/]+(?::\\d+)?(?:\\.\\d+)?)?\\s*(?P(?:\\d+\\.\\d+\\.\\d+\\.\\d+|[0-9a-fA-F:]+:[0-9a-fA-F:]+)?))( (?P\\d+))?$" + key: "#text" expected: - - key: FastEthernet0/1 10.1.1.1 block: - '#standalone': true - interface_ref: FastEthernet0/1 - next_hop_addr: 10.1.1.1 + '#text': FastEthernet0/1 10.1.1.1 + FastEthernet0/1: + '#text': 10.1.1.1 + 10.1.1.1: + '#standalone': true + mask: 255.255.255.0 + prefix: 1.1.1.0 extra_vars: - interface_ref: FastEthernet0/1 - next_hop_addr: 10.1.1.1 - value: FastEthernet0/1 10.1.1.1 + interface_ref: FastEthernet0/1 + next_hop_addr: 10.1.1.1 + value: FastEthernet0/1 10.1.1.1 + metric: null - - key: FastEthernet0/2 block: - '#standalone': true - interface_ref: FastEthernet0/2 + '#text': FastEthernet0/2 100 + FastEthernet0/2: + '#standalone': true + mask: 255.255.255.0 + prefix: 2.2.2.0 extra_vars: - interface_ref: FastEthernet0/2 - value: FastEthernet0/2 + interface_ref: FastEthernet0/2 + next_hop_addr: '' + value: FastEthernet0/2 + metric: '100' - - key: 10.1.1.3 block: - '#standalone': true - interface_ref: 10.1.1.3 - next_hop_addr: 10.1.1.3 + '#text': 10.1.1.3 + 10.1.1.3: + '#standalone': true + mask: 255.255.255.0 + prefix: 3.3.3.0 extra_vars: - next_hop_addr: 10.1.1.3 - value: 10.1.1.3 + interface_ref: null + next_hop_addr: 10.1.1.3 + value: 10.1.1.3 + metric: null diff --git a/test/unit/test_parser/006_ios_ip_route/mocked.txt b/test/unit/test_parser/007_ios_ip_route/mocked.txt similarity index 65% rename from test/unit/test_parser/006_ios_ip_route/mocked.txt rename to test/unit/test_parser/007_ios_ip_route/mocked.txt index b2e79920..9ebddea5 100644 --- a/test/unit/test_parser/006_ios_ip_route/mocked.txt +++ b/test/unit/test_parser/007_ios_ip_route/mocked.txt @@ -1,3 +1,3 @@ ip route 1.1.1.0 255.255.255.0 FastEthernet0/1 10.1.1.1 -ip route 2.2.2.0 255.255.255.0 FastEthernet0/2 +ip route 2.2.2.0 255.255.255.0 FastEthernet0/2 100 ip route 3.3.3.0 255.255.255.0 10.1.1.3