From fac8091c9f97810445f8feb7f29e5e35ae833dda Mon Sep 17 00:00:00 2001 From: abhi Date: Thu, 16 Feb 2012 12:35:36 +0530 Subject: [PATCH] bug 13673: stopping alien VMs during sync for Xenserver --- .../src/com/cloud/vm/VirtualMachineManagerImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java index 1fc95a8bc0d..0dea9ea9456 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -1802,23 +1802,31 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene return map; } Collection> vmGurus = _vmGurus.values(); - + boolean is_alien_vm = true; + long alien_vm_count = -1; for (Map.Entry> entry : newStates.entrySet()) { + is_alien_vm = true; for (VirtualMachineGuru vmGuru : vmGurus) { String name = entry.getKey(); VMInstanceVO vm = vmGuru.findByName(name); if (vm != null) { map.put(vm.getId(), new AgentVmInfo(entry.getKey(), vmGuru, vm, entry.getValue().second(), entry.getValue().first())); + is_alien_vm = false; break; } Long id = vmGuru.convertToId(name); if (id != null) { map.put(id, new AgentVmInfo(entry.getKey(), vmGuru, null, entry.getValue().second(), entry.getValue().first())); + is_alien_vm = false; break; } } + // alien VMs + if (is_alien_vm){ + map.put(alien_vm_count--, new AgentVmInfo(entry.getKey(), null, null, entry.getValue().second(), entry.getValue().first())); + s_logger.warn("Found an alien VM " + entry.getKey()); + } } - return map; }