From 24edf1c1e4892b2f34b334b6e6fa13364bc413e2 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 7 Dec 2015 12:02:43 +0100 Subject: [PATCH] CLOUDSTACK-9113: skip vm with inconsistent state when getVmStats/getVmDiskStats --- .../LibvirtGetVmDiskStatsCommandWrapper.java | 16 ++++++++++------ .../wrapper/LibvirtGetVmStatsCommandWrapper.java | 14 +++++++++----- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetVmDiskStatsCommandWrapper.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetVmDiskStatsCommandWrapper.java index 52449e93f6d..6316be9fbf3 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetVmDiskStatsCommandWrapper.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtGetVmDiskStatsCommandWrapper.java @@ -48,12 +48,16 @@ public final class LibvirtGetVmDiskStatsCommandWrapper extends CommandWrapper> vmDiskStatsNameMap = new HashMap>(); final Connect conn = libvirtUtilitiesHelper.getConnection(); for (final String vmName : vmNames) { - final List statEntry = libvirtComputingResource.getVmDiskStat(conn, vmName); - if (statEntry == null) { - continue; - } + try { + final List statEntry = libvirtComputingResource.getVmDiskStat(conn, vmName); + if (statEntry == null) { + continue; + } - vmDiskStatsNameMap.put(vmName, statEntry); + vmDiskStatsNameMap.put(vmName, statEntry); + } catch (LibvirtException e) { + s_logger.warn("Can't get vm disk stats: " + e.toString() + ", continue"); + } } return new GetVmDiskStatsAnswer(command, "", command.getHostName(), vmDiskStatsNameMap); } catch (final LibvirtException e) { @@ -61,4 +65,4 @@ public final class LibvirtGetVmDiskStatsCommandWrapper extends CommandWrapper