
On Thu, Mar 21, 2019 at 10:33:30PM -0400, Laine Stump wrote:
On 3/19/19 8:46 AM, Daniel P. Berrangé wrote:
The hypervisor drivers are soon going to communicate with the network driver via public APIs only. As such the network driver will not ever see the domain actual network def. Thus the backwards compatibility fixup logic must be moved out of the network driver.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com --- src/conf/domain_conf.c | 25 +++++++++++++++++++++++++ src/network/bridge_driver.c | 20 -------------------- 2 files changed, 25 insertions(+), 20 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 99b75e26f3..35d965d2a3 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -30210,6 +30210,7 @@ virDomainNetNotifyActualDevice(virConnectPtr conn, virDomainDefPtr dom, virDomainNetDefPtr iface) { + virDomainNetType actualType = virDomainNetGetActualType(iface); virNetworkPtr net = NULL; if (!netNotify) @@ -30218,6 +30219,30 @@ virDomainNetNotifyActualDevice(virConnectPtr conn, if (!(net = virNetworkLookupByName(conn, iface->data.network.name))) return; + /* if we're restarting libvirtd after an upgrade from a version + * that didn't save bridge name in actualNetDef for + * actualType==network, we need to copy it in so that it will be + * available in all cases + */ + if (actualType == VIR_DOMAIN_NET_TYPE_NETWORK && + !iface->data.network.actual->data.bridge.brname) { + char *bridge = virNetworkGetBridgeName(net); + if (!bridge) + goto cleanup; + VIR_FREE(iface->data.network.actual->data.bridge.brname); + iface->data.network.actual->data.bridge.brname = bridge; + } +
The above code was added in libvirt 1.2.11 in December 2014. It seems nearly impossible that someone would be upgrading from a libvirt that was 1.2.10 or older straight to libvirt-5.2.0 *without rebooting their host*. For this reason, I think the above code can/should be retired.
Yeah, I think that's probably ok
Reviewed-by: Laine Stump <laine@laine.org>
(either way, whether you decide to leave that code in or not.)
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|