diff --git a/plugins/modules/network/routeros/routeros_facts.py b/plugins/modules/network/routeros/routeros_facts.py index 643cda2dd3..b7487629ba 100644 --- a/plugins/modules/network/routeros/routeros_facts.py +++ b/plugins/modules/network/routeros/routeros_facts.py @@ -289,6 +289,8 @@ class Interfaces(FactsBase): def populate_ipv6_interfaces(self, data): for key, value in iteritems(data): + if key is None: + break if 'ipv6' not in self.facts['interfaces'][key]: self.facts['interfaces'][key]['ipv6'] = list() addr, subnet = value['address'].split("/") diff --git a/tests/unit/modules/network/routeros/fixtures/routeros_facts/ipv6_address_print_detail_without-paging_no-ipv6 b/tests/unit/modules/network/routeros/fixtures/routeros_facts/ipv6_address_print_detail_without-paging_no-ipv6 new file mode 100644 index 0000000000..0ea34bc0de --- /dev/null +++ b/tests/unit/modules/network/routeros/fixtures/routeros_facts/ipv6_address_print_detail_without-paging_no-ipv6 @@ -0,0 +1 @@ +bad command name address (line 1 column 7) diff --git a/tests/unit/modules/network/routeros/test_routeros_facts.py b/tests/unit/modules/network/routeros/test_routeros_facts.py index 72f99034af..f4b58a3790 100644 --- a/tests/unit/modules/network/routeros/test_routeros_facts.py +++ b/tests/unit/modules/network/routeros/test_routeros_facts.py @@ -107,3 +107,13 @@ class TestRouterosFactsModule(TestRouterosModule): self.assertEqual( len(result['ansible_facts']['ansible_net_neighbors'].keys()), 4 ) + + def test_routeros_facts_interfaces_no_ipv6(self): + fixture = load_fixture( + 'routeros_facts/ipv6_address_print_detail_without-paging_no-ipv6' + ) + interfaces = self.module.Interfaces(module=self.module) + addresses = interfaces.parse_addresses(data=fixture) + result = interfaces.populate_ipv6_interfaces(data=addresses) + + self.assertEqual(result, None)