From 368134e4956121de663ecb5e0cf713eae605a030 Mon Sep 17 00:00:00 2001 From: Chen Hanxiao Date: Mon, 25 May 2020 20:41:00 -0400 Subject: [PATCH] downscript: add support for booting and hotplug interface Support downscript for booting vm, and hotunplug interface device. Signed-off-by: Chen Hanxiao Reviewed-by: Michal Privoznik --- src/qemu/qemu_extdevice.c | 3 ++ src/qemu/qemu_hotplug.c | 3 ++ tests/qemuxml2argvdata/downscript.xml | 60 +++++++++++++++++++++++++ tests/qemuxml2xmloutdata/downscript.xml | 60 +++++++++++++++++++++++++ tests/qemuxml2xmltest.c | 1 + 5 files changed, 127 insertions(+) create mode 100644 tests/qemuxml2argvdata/downscript.xml create mode 100644 tests/qemuxml2xmloutdata/downscript.xml diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c index 2096272761..dc188e6042 100644 --- a/src/qemu/qemu_extdevice.c +++ b/src/qemu/qemu_extdevice.c @@ -230,10 +230,13 @@ qemuExtDevicesStop(virQEMUDriverPtr driver, for (i = 0; i < def->nnets; i++) { virDomainNetDefPtr net = def->nets[i]; + virDomainNetType actualType = virDomainNetGetActualType(net); qemuSlirpPtr slirp = QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp; if (slirp) qemuSlirpStop(slirp, vm, driver, net); + if (actualType == VIR_DOMAIN_NET_TYPE_ETHERNET && net->downscript) + virNetDevRunEthernetScript(net->ifname, net->downscript); } for (i = 0; i < def->nfss; i++) { diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 3571dead89..d1a2be1f7a 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -4672,6 +4672,9 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver, virDomainNetReleaseActualDevice(conn, vm->def, net); else VIR_WARN("Unable to release network device '%s'", NULLSTR(net->ifname)); + } else if (net->type == VIR_DOMAIN_NET_TYPE_ETHERNET) { + if (net->script) + virNetDevRunEthernetScript(net->ifname, net->downscript); } virDomainNetDefFree(net); return 0; diff --git a/tests/qemuxml2argvdata/downscript.xml b/tests/qemuxml2argvdata/downscript.xml new file mode 100644 index 0000000000..4d0fb1beab --- /dev/null +++ b/tests/qemuxml2argvdata/downscript.xml @@ -0,0 +1,60 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219136 + 219136 + 1 + + hvm + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + + +
+ + +
+ + +
+ + + +
+ + + + +
+ + + + + +
+ + + +