libvirt/tests
Laine Stump 97061d576b network: use previously saved list of firewall removal commands
When destroying a network, the network driver has always assumed that
it knew what firewall rules had been added as the network was
started. This was usually correct - I only recall one time in the past
that the firewall rules added by libvirt were changed. But if the
exact rules used for a network *were* ever changed from one
build/version of libvirt to another, then we would end up attempting
to remove rules that hadn't been added, and could possibly *not*
remove rules that had been added.

The solution to this to not make such brash assumptions about the
past, but instead to save (in the network status object at network
start time) a list of all the rules needed to remove the rules that
were added for the network, and then use that saved list during
network destroy to remove exactly what was previous added.

Beyond making net-destroy more precise, there are other benefits:

1) We can change the details of the rules we add for networks from one
build/release of libvirt to another and painlessly upgrade.

2) The user can switch from one firewall backend to another by simply
changing the setting in network.conf and restarting
libvirtd/virtnetworkd.

In both cases, the restarted libvirtd/virtnetworkd will remove all the
rules that had been previously added (based on the network status),
and then add new rules (saving the new removal commands back into the
network status)

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2024-05-22 23:20:07 -04:00
..
bhyveargv2xmldata
bhyvefirmwaredata
bhyvexml2argvdata
bhyvexml2xmloutdata bhyve: auto allocate nmdm console paths 2021-02-08 18:50:47 +04:00
capabilityschemadata
chxml2xmlin
chxml2xmlout
commanddata
cputestdata cpu_map: Drop 'mpx' from x86 cpu models 2024-05-02 19:56:45 +02:00
domainbackupxml2xmlin
domainbackupxml2xmlout
domaincapsdata cpu_map: Drop 'mpx' from x86 cpu models 2024-05-02 19:56:45 +02:00
domainconfdata
domainschemadata
fchostdata/fc_host
genericxml2xmlindata
genericxml2xmloutdata
interfaceschemadata
libxlxml2domconfigdata
lxcconf2xmldata
lxcxml2xmldata lxc: add possibility to define init uid/gid 2017-07-11 10:41:24 +02:00
lxcxml2xmloutdata
networkxml2confdata
networkxml2firewalldata
networkxml2xmlin conf: support manually specifying VFIO variant driver in <hostdev> XML 2024-01-08 01:00:08 -05:00
networkxml2xmlout
networkxml2xmlupdatein
networkxml2xmlupdateout
nodedevmdevctldata
nodedevschemadata
nodedevxml2xmlout nodedev: add an active config to mdev 2024-02-26 10:59:47 +01:00
nssdata
nwfilterxml2firewalldata
nwfilterxml2xmlin nwfilterxml2xmltest: Add test case for parser and formatter quirks 2023-06-05 13:23:06 +02:00
nwfilterxml2xmlout
qemuagentdata
qemublocktestdata
qemucapabilitiesdata qemu_capabilities: Add QEMU_CAPS_DEVICE_VIRTIO_SOUND capability 2024-05-02 15:37:53 +02:00
qemucaps2xmloutdata
qemudomaincheckpointxml2xmlin
qemudomaincheckpointxml2xmlout
qemudomainsnapshotxml2xmlin
qemudomainsnapshotxml2xmlout
qemufirmwaredata
qemuhotplugtestcpus
qemuhotplugtestdevices qemuhotplugtest: Add testcases for hotplugging evdev input devices 2024-05-16 14:57:02 +02:00
qemuhotplugtestdomains qemuhotplugtest: Add testcases for hotplugging evdev input devices 2024-05-16 14:57:02 +02:00
qemumemlockdata
qemumigparamsdata
qemumigrationcookiexmldata
qemumonitorjsondata
qemunbdkitdata
qemusecuritydata
qemustatusxml2xmldata
qemuvhostuserdata
qemuxmlactive2xmldata
qemuxmlconfdata qemu: fix qemu command for pci hostdevs and ramfb='off' 2024-05-20 12:42:18 -05:00
schemas
secretxml2xmlin
securityselinuxhelperdata
securityselinuxlabeldata
storagepoolcapsschemadata
storagepoolschemadata
storagepoolxml2argvdata
storagepoolxml2xmlin
storagepoolxml2xmlout
storagevolschemadata
storagevolxml2argvdata
storagevolxml2xmlin
storagevolxml2xmlout
sysinfodata
vboxsnapshotxmldata
viracpidata
vircaps2xmldata
vircgroupdata
virconfdata
virfilecachedata
virfiledata
virhostcpudata tests: Add hostcpudata for machine with CPU clusters 2024-01-15 14:56:35 +01:00
virjsondata
virmacmaptestdata
virnetdaemondata
virnetdevopenvswitchdata
virnetdevtestdata/sys/class/net
virnetworkportxml2xmldata
virnwfilterbindingxml2xmldata
virpcitestdata
virprocessstatdata
virresctrldata
virscsidata
virshtestdata virshtest: Add tests for '--help' 2024-05-16 09:03:48 +02:00
virstoragetestdata
virstorageutildata
virusbtestdata/sys_bus_usb/devices
virutiltestdata
vmwareverdata
vmx2xmldata vmx: Do not require DVS Port ID 2024-05-14 08:32:13 +02:00
xlconfigdata
xmconfigdata
xml2vmxdata Rename iterface type='dummy' to type='null' 2022-08-25 13:27:04 +02:00
.valgrind.supp
bhyveargv2xmlmock.c
bhyveargv2xmltest.c
bhyvexml2argvmock.c
bhyvexml2argvtest.c
bhyvexml2xmltest.c
chxml2xmlmock.c
chxml2xmltest.c
commandhelper.c
commandtest.c
cputest.c cpu: Add removedPolicy parameter to virCPUUpdate 2024-05-02 19:56:45 +02:00
domaincapsmock.c
domaincapstest.c
domainconftest.c
esxutilstest.c
eventtest.c
fchosttest.c tests: fix tests when test driver is disabled 2024-05-08 15:57:31 +01:00
fdstreamtest.c
genericxml2xmltest.c
interfacexml2xmltest.c
libxlmock.c test: drop bogus check for YAJL from libxl test/mock 2024-05-08 16:01:34 +01:00
libxlxml2domconfigtest.c test: drop bogus check for YAJL from libxl test/mock 2024-05-08 16:01:34 +01:00
lxcconf2xmltest.c
lxcxml2xmltest.c
meson.build tests: Link some mocks with libtest_qemu_driver.so 2024-05-15 12:31:45 +02:00
metadatatest.c
networkmetadatatest.c
networkxml2conftest.c
networkxml2firewalltest.c network: use previously saved list of firewall removal commands 2024-05-22 23:20:07 -04:00
networkxml2xmltest.c
networkxml2xmlupdatetest.c
nodedevmdevctltest.c
nodedevxml2xmltest.c test: nodedev: fill active_config at driver startup time 2024-04-24 09:38:54 -04:00
nsslinktest.c
nssmock.c
nsstest.c
nwfilterebiptablestest.c
nwfilterxml2firewalltest.c
nwfilterxml2xmltest.c
objecteventtest.c
openvzutilstest.c
openvzutilstest.conf
permitted_file_access.txt
pkix_asn1_tab.c
qemuagenttest.c
qemublocktest.c
qemucapabilitiestest.c
qemucaps2xmlmock.c
qemucaps2xmltest.c
qemucapsprobe.c tests: qemucapsprobe: Fix construction of path to libqemucapsprobemock.so 2024-04-24 14:12:17 +02:00
qemucapsprobemock.c
qemucommandutiltest.c
qemucpumock.c
qemudomaincheckpointxml2xmltest.c
qemudomainsnapshotxml2xmltest.c
qemufirmwaretest.c
qemuhotplugmock.c
qemuhotplugtest.c qemuhotplugtest: Add testcases for hotplugging evdev input devices 2024-05-16 14:57:02 +02:00
qemumemlocktest.c
qemumigparamstest.c
qemumigrationcookiexmltest.c
qemumonitorjsontest.c
qemumonitortestutils.c
qemumonitortestutils.h
qemunbdkittest.c
qemusecuritymock.c qemusecuritytest: Call real virFileExists in mock 2024-04-09 16:55:25 +02:00
qemusecuritytest.c qemuxmlconftest: Move data directory 'qemuxml2argvdata' to 'qemuxmlconfdata' 2024-01-24 09:19:28 +01:00
qemusecuritytest.h
qemuvhostusertest.c
qemuxml2argvmock.c
qemuxmlactivetest.c
qemuxmlconftest.c qemu: Generate command line for sound devices with model 'virtio' 2024-05-02 15:38:34 +02:00
scsihosttest.c
seclabeltest.c
secretxml2xmltest.c
securityselinuxhelper.c
securityselinuxlabeltest.c tests: mock: Accept spaces in build path 2024-04-15 09:24:16 +02:00
securityselinuxtest.c tests: mock: Accept spaces in build path 2024-04-15 09:24:16 +02:00
shunloadhelper.c
shunloadtest.c
sockettest.c
ssh.c
storagepoolcapstest.c
storagepoolxml2argvtest.c
storagepoolxml2xmltest.c
storagevolxml2argvtest.c
storagevolxml2xmltest.c
sysinfotest.c
testutils.c tests: mock: Accept spaces in build path 2024-04-15 09:24:16 +02:00
testutils.h tests: mock: Accept spaces in build path 2024-04-15 09:24:16 +02:00
testutilshostcpus.h
testutilslxc.c
testutilslxc.h
testutilsqemu.c testutilsqemu: Don't leak struct testQemuArgs::vdpafds 2024-05-14 15:06:07 +02:00
testutilsqemu.h
testutilsqemuschema.c
testutilsqemuschema.h
testutilsxen.c
testutilsxen.h
utiltest.c
vboxsnapshotxmltest.c
viracpitest.c
viralloctest.c
virauthconfigtest.c
virbitmaptest.c virbitmap: Introduce virBitmapParseUnlimitedAllowEmpty() 2024-05-06 15:26:58 +02:00
virbuftest.c
vircaps2xmltest.c
vircgroupmock.c
vircgrouptest.c
virconftest.c
vircryptotest.c
virdnsmasqmock.c
virdriverconnvalidatetest.c
virdrivermoduletest.c
virendiantest.c
virerrortest.c
virfilecachemock.c
virfilecachetest.c
virfilemock.c
virfiletest.c
virfilewrapper.c
virfilewrapper.h
virfirewallmock.c
virfirewalltest.c util/network: new virFirewallBackend enum 2024-05-22 23:19:18 -04:00
virgdbusmock.c
virhostcpumock.c
virhostcputest.c
virhostdevmock.c
virhostdevtest.c
virhostidmock.c
viridentitytest.c tests: mock: Accept spaces in build path 2024-04-15 09:24:16 +02:00
viriscsitest.c
virjsontest.c
virkeycodetest.c
virkmodtest.c
virlockspacetest.c
virlogtest.c
virmacmaptest.c
virmigtest.c
virmock.h
virmockstathelpers.c
virnetdaemonmock.c
virnetdaemontest.c
virnetdevbandwidthmock.c
virnetdevbandwidthtest.c
virnetdevmock.c
virnetdevopenvswitchtest.c
virnetdevtest.c
virnetmessagetest.c
virnetserverclientmock.c
virnetserverclienttest.c
virnetsockettest.c
virnettlscontexttest.c
virnettlshelpers.c
virnettlshelpers.h
virnettlssessiontest.c
virnetworkportxml2xmltest.c
virnumamock.c
virnwfilterbindingxml2xmltest.c
virpcimock.c
virpcitest.c
virpcivpdtest.c
virpolkittest.c
virportallocatormock.c
virportallocatortest.c
virprocessmock.c
virprocessstattest.c
virrandommock.c
virresctrltest.c
virrotatingfiletest.c
virschematest.c
virscsitest.c
virsh-auth
virsh-auth.xml
virshtest.c virshtest: Add tests for '--help' 2024-05-16 09:03:48 +02:00
virstoragetest.c
virstorageutiltest.c
virstringtest.c
virsystemdtest.c
virt-aa-helper-test tests: Allow spaces in path to virt-aa-helper 2024-04-15 09:28:32 +02:00
virtestmock.c
virtimetest.c
virtypedparamtest.c
viruritest.c
virusbmock.c
virusbtest.c
vmwarevertest.c
vmx2xmltest.c vmx: Check serialX.vspc before serialX.fileName 2024-05-02 17:22:37 +02:00
vshtabletest.c
xlconfigtest.c libxl: Fix domxml-to-native conversion 2024-05-02 15:57:29 -06:00
xmconfigtest.c libxl: Fix domxml-to-native conversion 2024-05-02 15:57:29 -06:00
xml2vmxtest.c