def test_update_hostdev_pf(make_mock_network, change): """ Test updating a hostdev network without changes """ net_mock = make_mock_network(""" <network connections='1'> <name>test-hostdev</name> <uuid>51d0aaa5-7530-4c60-8498-5bc3ab8c655b</uuid> <forward mode='hostdev' managed='yes'> <pf dev='eth0'/> <address type='pci' domain='0x0000' bus='0x3d' slot='0x02' function='0x0'/> <address type='pci' domain='0x0000' bus='0x3d' slot='0x02' function='0x1'/> </forward> </network> """) assert (virt.network_update( "test-hostdev", None, "hostdev", physical_function="eth0" if not change else "eth1", ) == change) define_mock = virt.libvirt.openAuth().networkDefineXML if change: define_mock.assert_called() else: define_mock.assert_not_called()
def test_update_nat_nochange(make_mock_network): """ Test updating a NAT network without changes """ net_mock = make_mock_network(""" <network> <name>default</name> <uuid>d6c95a31-16a2-473a-b8cd-7ad2fe2dd855</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:cd:49:6b'/> <domain name='my.lab' localOnly='yes'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> <host mac='52:54:00:46:4d:9e' name='mirror' ip='192.168.122.136'/> <bootp file='pxelinux.0' server='192.168.122.110'/> </dhcp> </ip> </network> """) assert not virt.network_update( "default", None, "nat", ipv4_config={ "cidr": "192.168.122.0/24", "dhcp_ranges": [{ "start": "192.168.122.2", "end": "192.168.122.254" }], "hosts": { "192.168.122.136": { "mac": "52:54:00:46:4d:9e", "name": "mirror" }, }, "bootp": { "file": "pxelinux.0", "server": "192.168.122.110" }, }, domain={ "name": "my.lab", "localOnly": True }, nat={"port": { "start": 1024, "end": "65535" }}, ) define_mock = virt.libvirt.openAuth().networkDefineXML define_mock.assert_not_called()
def test_update_nat_change(make_mock_network, test, netmask): """ Test updating a NAT network with changes """ net_mock = make_mock_network(""" <network> <name>default</name> <uuid>d6c95a31-16a2-473a-b8cd-7ad2fe2dd855</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:cd:49:6b'/> <domain name='my.lab' localOnly='yes'/> <ip address='192.168.122.1' {}> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network> """.format(netmask)) assert virt.network_update( "default", "test-br0", "nat", ipv4_config={ "cidr": "192.168.124.0/24", "dhcp_ranges": [{ "start": "192.168.124.2", "end": "192.168.124.254" }], }, test=test, ) define_mock = virt.libvirt.openAuth().networkDefineXML assert_called(define_mock, not test) if not test: # Test the passed new XML expected_xml = strip_xml(""" <network> <name>default</name> <mac address='52:54:00:cd:49:6b'/> <uuid>d6c95a31-16a2-473a-b8cd-7ad2fe2dd855</uuid> <bridge name='test-br0'/> <forward mode='nat'/> <ip family='ipv4' address='192.168.124.1' prefix='24'> <dhcp> <range start='192.168.124.2' end='192.168.124.254'/> </dhcp> </ip> </network> """) assert strip_xml(define_mock.call_args[0][0]) == expected_xml