diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index ae63add2f9a..c2fd8bde2a6 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -3003,7 +3003,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe synchronized (_vms) { _vms.remove(vmName); } - return new StopAnswer(cmd, "VM does not exist"); + return new StopAnswer(cmd, "VM does not exist", 0 , 0L, 0L); } Long bytesSent = 0L; Long bytesRcvd = 0L; diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 45ef5c83c57..80d4c8c920f 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2807,6 +2807,11 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager @Override public void finalizeStop(VirtualMachineProfile profile, StopAnswer answer) { + if("VM does not exist".equals(answer.getDetails())){ + // Stop answer returns true when Vm does not exist. + // This is a hack to avoid logging usage events + return; + } VMInstanceVO vm = profile.getVirtualMachine(); UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_VM_STOP, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), vm.getHostName()); _usageEventDao.persist(usageEvent);