CLOUDSTACK-1192: fix collectVmDiskStatistics issue when stopping a vm

(Cherry-picked from commit 65c1c986da)
This commit is contained in:
Wei Zhou 2013-09-03 11:45:34 +02:00
parent b99962d27f
commit d0ffc9e339
1 changed files with 5 additions and 4 deletions

View File

@ -3486,8 +3486,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
public void collectVmDiskStatistics (UserVmVO userVm) {
// support KVM only util 2013.06.25
if (!userVm.getHypervisorType().equals(HypervisorType.KVM))
return;
// Collect vm disk statistics from host before stopping Vm
return;
s_logger.debug("Collect vm disk statistics from host before stopping Vm");
long hostId = userVm.getHostId();
List<String> vmNames = new ArrayList<String>();
vmNames.add(userVm.getInstanceName());
@ -3509,8 +3509,9 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
try {
txn.start();
HashMap<String, List<VmDiskStatsEntry>> vmDiskStatsByName = diskStatsAnswer.getVmDiskStatsMap();
if (vmDiskStatsByName == null)
return;
List<VmDiskStatsEntry> vmDiskStats = vmDiskStatsByName.get(userVm.getInstanceName());
if (vmDiskStats == null)
return;
@ -4982,7 +4983,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public void prepareStop(VirtualMachineProfile<UserVmVO> profile) {
UserVmVO vm = _vmDao.findById(profile.getId());
if (vm.getState() == State.Running)
if (vm != null && vm.getState() == State.Stopping)
collectVmDiskStatistics(vm);
}