diff --git a/agent/bindir/libvirtqemuhook.in b/agent/bindir/libvirtqemuhook.in index cf3d36410b8..e17944d8353 100755 --- a/agent/bindir/libvirtqemuhook.in +++ b/agent/bindir/libvirtqemuhook.in @@ -61,21 +61,23 @@ def handleMigrateBegin(): try: domain = parse(sys.stdin) for interface in domain.getElementsByTagName("interface"): - source = interface.getElementsByTagName("source")[0] - bridge = source.getAttribute("bridge") - if isOldStyleBridge(bridge): - vlanId = bridge.replace("cloudVirBr", "") - phyDev = getGuestNetworkDevice() - elif isNewStyleBridge(bridge): - vlanId = re.sub(r"br(\w+)-", "", bridge) - phyDev = re.sub(r"-(\d+)$", "" , re.sub(r"^br", "" ,bridge)) - netlib = networkConfig() - if not netlib.isNetworkDev(phyDev): + sources = interface.getElementsByTagName("source") + if sources.length > 0: + source = interface.getElementsByTagName("source")[0] + bridge = source.getAttribute("bridge") + if isOldStyleBridge(bridge): + vlanId = bridge.replace("cloudVirBr", "") phyDev = getGuestNetworkDevice() - else: - continue - newBrName = "br" + phyDev + "-" + vlanId - source.setAttribute("bridge", newBrName) + elif isNewStyleBridge(bridge): + vlanId = re.sub(r"br(\w+)-", "", bridge) + phyDev = re.sub(r"-(\d+)$", "" , re.sub(r"^br", "" ,bridge)) + netlib = networkConfig() + if not netlib.isNetworkDev(phyDev): + phyDev = getGuestNetworkDevice() + else: + continue + newBrName = "br" + phyDev + "-" + vlanId + source.setAttribute("bridge", newBrName) print(domain.toxml()) except: pass