diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index c07b2d93435..1cdc1f0d03b 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -72,6 +72,7 @@ import org.libvirt.DomainInterfaceStats; import org.libvirt.DomainSnapshot; import org.libvirt.LibvirtException; import org.libvirt.MemoryStatistic; +import org.libvirt.Network; import org.libvirt.NodeInfo; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -925,6 +926,20 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv throw new CloudRuntimeException(e.getMessage()); } + // destroy default network, see https://libvirt.org/sources/java/javadoc/org/libvirt/Network.html + try { + Network network = conn.networkLookupByName("default"); + s_logger.debug("Found libvirt default network, destroying it and setting autostart to false"); + if (network.isActive() == 1) { + network.destroy(); + } + if (network.getAutostart()) { + network.setAutostart(false); + } + } catch (final LibvirtException e) { + s_logger.warn("Ignoring libvirt error.", e); + } + if (HypervisorType.KVM == _hypervisorType) { /* Does node support HVM guest? If not, exit */ if (!IsHVMEnabled(conn)) { diff --git a/python/lib/cloudutils/networkConfig.py b/python/lib/cloudutils/networkConfig.py index b3ae26951ba..27988433e2e 100644 --- a/python/lib/cloudutils/networkConfig.py +++ b/python/lib/cloudutils/networkConfig.py @@ -103,6 +103,9 @@ class networkConfig: @staticmethod def isOvsBridge(devName): + cmd = bash("which ovs-vsctl") + if not cmd.isSuccess(): + return False try: return 0==subprocess.check_call(("ovs-vsctl", "br-exists", devName)) except subprocess.CalledProcessError: diff --git a/python/lib/cloudutils/serviceConfig.py b/python/lib/cloudutils/serviceConfig.py index 994c822ca01..cc7a22d5c4f 100755 --- a/python/lib/cloudutils/serviceConfig.py +++ b/python/lib/cloudutils/serviceConfig.py @@ -581,6 +581,8 @@ class libvirtConfigUbuntu(serviceCfgBase): self.syscfg.svo.stopService("libvirt-bin") self.syscfg.svo.enableService("libvirt-bin") + if os.path.exists("/lib/systemd/system/libvirt-bin.socket"): + bash("systemctl stop libvirt-bin.socket") return True except: raise