From 00b678c61a54f176625d3f937971215faf6af2cd Mon Sep 17 00:00:00 2001 From: Ryan Harper Date: Fri, 26 May 2017 14:29:24 -0500 Subject: Fix eni rendering for bridge params that require repeated key for values. There are a few bridge parameters which require repeating the key with each value in the list when rendering eni. Extend the network unittests to cover all of the known bridge parameters and check we render eni and netplan correctly. --- cloudinit/net/eni.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'cloudinit/net') diff --git a/cloudinit/net/eni.py b/cloudinit/net/eni.py index 0cc4e3b2..20e19f5b 100644 --- a/cloudinit/net/eni.py +++ b/cloudinit/net/eni.py @@ -75,6 +75,15 @@ def _iface_add_attrs(iface, index): 'subnets', 'type', ] + + # The following parameters require repetitive entries of the key for + # each of the values + multiline_keys = [ + 'bridge_pathcost', + 'bridge_portprio', + 'bridge_waitport', + ] + renames = {'mac_address': 'hwaddress'} if iface['type'] not in ['bond', 'bridge', 'vlan']: ignore_map.append('mac_address') @@ -82,6 +91,10 @@ def _iface_add_attrs(iface, index): for key, value in iface.items(): if not value or key in ignore_map: continue + if key in multiline_keys: + for v in value: + content.append(" {0} {1}".format(renames.get(key, key), v)) + continue if type(value) == list: value = " ".join(value) content.append(" {0} {1}".format(renames.get(key, key), value)) -- cgit v1.2.3