From d96bc05d10d0e5ca8f6e232e8de68398dadf8afb Mon Sep 17 00:00:00 2001 From: Wido den Hollander Date: Thu, 6 Dec 2018 09:34:47 +0100 Subject: [PATCH] kvm: Use 'ip route show default 0.0.0.0/0' to find the default gateway (#3080) If a host has many routes this can be a magnitude faster then printing all the routes and grepping for the default. In some situations the host might have a large amount of routes due to dynamic routing being used like OSPF or BGP. In addition fix a couple of loglines which were throwing messages on DEBUG while WARN and ERROR should be used there. Signed-off-by: Wido den Hollander --- .../hypervisor/kvm/resource/LibvirtComputingResource.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 26fcd01f63f..cf6f610ef6f 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 @@ -1015,21 +1015,21 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv */ if (_pifs.get("private") == null) { - s_logger.debug("Failed to get private nic name"); + s_logger.error("Failed to get private nic name"); throw new ConfigurationException("Failed to get private nic name"); } if (_pifs.get("public") == null) { - s_logger.debug("Failed to get public nic name"); + s_logger.error("Failed to get public nic name"); throw new ConfigurationException("Failed to get public nic name"); } s_logger.debug("Found pif: " + _pifs.get("private") + " on " + _privBridgeName + ", pif: " + _pifs.get("public") + " on " + _publicBridgeName); _canBridgeFirewall = canBridgeFirewall(_pifs.get("public")); - _localGateway = Script.runSimpleBashScript("ip route |grep default|awk '{print $3}'"); + _localGateway = Script.runSimpleBashScript("ip route show default 0.0.0.0/0|head -1|awk '{print $3}'"); if (_localGateway == null) { - s_logger.debug("Failed to found the local gateway"); + s_logger.warn("No default IPv4 gateway found"); } _mountPoint = (String)params.get("mount.path");