CLOUDSTACK-2856: collectVmDiskStatistics before reboot/stop/migrate

This commit is contained in:
Wei Zhou 2013-06-05 14:28:43 +02:00
parent f321acd06d
commit 15265479f6

View File

@ -755,6 +755,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
}
if (vm.getState() == State.Running && vm.getHostId() != null) {
collectVmDiskStatistics(vm);
return _itMgr.reboot(vm, null, caller, owner);
} else {
s_logger.error("Vm id=" + vmId
@ -3379,9 +3380,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
boolean status;
State vmState = vm.getState();
// Collect vm disk statistics from host before stopping Vm
collectVmDiskStatistics(vm);
try {
VirtualMachineEntity vmEntity = _orchSrvc.getVirtualMachine(vm.getUuid());
status = vmEntity.destroy(new Long(userId).toString());
@ -3830,7 +3828,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
"No permission to migrate VM, Only Root Admin can migrate a VM!");
}
VMInstanceVO vm = _vmInstanceDao.findById(vmId);
UserVmVO vm = _vmDao.findById(vmId);
if (vm == null) {
throw new InvalidParameterValueException(
"Unable to find the VM by id=" + vmId);
@ -3921,6 +3919,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
+ " already has max Running VMs(count includes system VMs), cannot migrate to this host");
}
collectVmDiskStatistics(vm);
VMInstanceVO migratedVm = _itMgr.migrate(vm, srcHostId, dest);
return migratedVm;
}
@ -4710,6 +4709,9 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Use
@Override
public void prepareStop(VirtualMachineProfile<UserVmVO> profile) {
UserVmVO vm = profile.getVirtualMachine();
if (vm.getState() == State.Running)
collectVmDiskStatistics(vm);
}
}