diff options
author | Andrew Kutz <101085+akutz@users.noreply.github.com> | 2021-11-09 13:41:03 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-09 12:41:03 -0700 |
commit | fff6de4a18fa4eca709870e995de99c543a4ac1c (patch) | |
tree | 9ba77646969bb8df6a49a7ba012c7bdc73280339 /cloudinit/net/tests | |
parent | 3d150688617e2b8a16d715c7fb819c759f91915a (diff) | |
download | vyos-cloud-init-fff6de4a18fa4eca709870e995de99c543a4ac1c.tar.gz vyos-cloud-init-fff6de4a18fa4eca709870e995de99c543a4ac1c.zip |
Fix for set-name bug in networkd renderer (#1100)
This patch address an issue where the use of the "set-name"
directive caused the networkd renderer to fail.
LP: #1949407
Diffstat (limited to 'cloudinit/net/tests')
-rw-r--r-- | cloudinit/net/tests/test_networkd.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/cloudinit/net/tests/test_networkd.py b/cloudinit/net/tests/test_networkd.py new file mode 100644 index 00000000..8dc90b48 --- /dev/null +++ b/cloudinit/net/tests/test_networkd.py @@ -0,0 +1,64 @@ +# This file is part of cloud-init. See LICENSE file for license information. + +from cloudinit import safeyaml +from cloudinit.net import networkd, network_state + +V2_CONFIG_SET_NAME = """\ +network: + version: 2 + ethernets: + eth0: + match: + macaddress: '00:11:22:33:44:55' + nameservers: + search: [spam.local, eggs.local] + addresses: [8.8.8.8] + eth1: + match: + macaddress: '66:77:88:99:00:11' + set-name: "ens92" + nameservers: + search: [foo.local, bar.local] + addresses: [4.4.4.4] +""" + +V2_CONFIG_SET_NAME_RENDERED_ETH0 = """[Match] +MACAddress=00:11:22:33:44:55 +Name=eth0 + +[Network] +DHCP=no +DNS=8.8.8.8 +Domains=spam.local eggs.local + +""" + +V2_CONFIG_SET_NAME_RENDERED_ETH1 = """[Match] +MACAddress=66:77:88:99:00:11 +Name=ens92 + +[Network] +DHCP=no +DNS=4.4.4.4 +Domains=foo.local bar.local + +""" + + +class TestNetworkdRenderState: + def _parse_network_state_from_config(self, config): + yaml = safeyaml.load(config) + return network_state.parse_net_config_data(yaml["network"]) + + def test_networkd_render_with_set_name(self): + ns = self._parse_network_state_from_config(V2_CONFIG_SET_NAME) + renderer = networkd.Renderer() + rendered_content = renderer._render_content(ns) + + assert "eth0" in rendered_content + assert rendered_content["eth0"] == V2_CONFIG_SET_NAME_RENDERED_ETH0 + assert "ens92" in rendered_content + assert rendered_content["ens92"] == V2_CONFIG_SET_NAME_RENDERED_ETH1 + + +# vi: ts=4 expandtab |