Show an error when *_bridge_ports is not a list

Closes-Bug: #2020378
Change-Id: I000ae473bb759e19b48ecefdbf5d5dc19c833088
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
This commit is contained in:
Maksim Malchuk 2023-05-22 21:44:25 +03:00
parent 0e1fbb3e60
commit 9b58320f6b
2 changed files with 11 additions and 1 deletions

View File

@ -290,7 +290,11 @@ def net_libvirt_network_name(context, name, inventory_hostname=None):
@jinja2.pass_context
def net_bridge_ports(context, name, inventory_hostname=None):
return net_attr(context, name, 'bridge_ports', inventory_hostname)
ports = net_attr(context, name, 'bridge_ports', inventory_hostname)
if ports and not isinstance(ports, list):
raise errors.AnsibleFilterError("Bridge ports for network '%s' should"
" be a list", name)
return ports
net_bond_mode = _make_attr_filter('bond_mode')

View File

@ -17,6 +17,7 @@ import unittest
import jinja2
from ansible import errors
from kayobe.plugins.filter import networks
@ -197,3 +198,8 @@ class TestNetworks(BaseNetworksTest):
}
]
self.assertEqual(expected, veths)
def test_ensure_bridge_ports_is_list(self):
self._update_context({"net3_bridge_ports": "ens3"})
self.assertRaises(errors.AnsibleFilterError, networks.net_bridge_ports,
self.context, "net3")