From d1d722f9bde91ce36f494142f4651a22c6795d6b Mon Sep 17 00:00:00 2001 From: amoghvk Date: Mon, 11 Aug 2014 14:53:02 -0700 Subject: [PATCH] CLOUDSTACK-7295: VMs is Stopped state have no host ID, resulting in NPE --- .../vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java | 7 +++++-- .../xenserver/src/com/cloud/hypervisor/XenServerGuru.java | 7 +++++-- server/src/com/cloud/hypervisor/KVMGuru.java | 7 +++++-- server/src/com/cloud/hypervisor/LXCGuru.java | 7 +++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java index 08d12f2eb7c..abc7cdba509 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java @@ -314,8 +314,11 @@ public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru, Co to.setOs(guestOS.getDisplayName()); to.setHostName(vm.getHostName()); HostVO host = _hostDao.findById(vm.getVirtualMachine().getHostId()); - GuestOSHypervisorVO guestOsMapping = _guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), getHypervisorType().toString(), host.getHypervisorVersion()); - if (guestOsMapping == null) { + GuestOSHypervisorVO guestOsMapping = null; + if (host != null) { + guestOsMapping = _guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), getHypervisorType().toString(), host.getHypervisorVersion()); + } + if (guestOsMapping == null || host == null) { to.setPlatformEmulator(null); } else { to.setPlatformEmulator(guestOsMapping.getGuestOsName()); diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java index c10f4a0ba16..c1de8bbb976 100644 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/XenServerGuru.java @@ -92,8 +92,11 @@ public class XenServerGuru extends HypervisorGuruBase implements HypervisorGuru GuestOSVO guestOS = _guestOsDao.findById(vm.getVirtualMachine().getGuestOSId()); to.setOs(guestOS.getDisplayName()); HostVO host = hostDao.findById(vm.getVirtualMachine().getHostId()); - GuestOSHypervisorVO guestOsMapping = _guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), getHypervisorType().toString(), host.getHypervisorVersion()); - if (guestOsMapping == null) { + GuestOSHypervisorVO guestOsMapping = null; + if (host != null) { + guestOsMapping = _guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), getHypervisorType().toString(), host.getHypervisorVersion()); + } + if (guestOsMapping == null || host == null) { to.setPlatformEmulator(null); } else { to.setPlatformEmulator(guestOsMapping.getGuestOsName()); diff --git a/server/src/com/cloud/hypervisor/KVMGuru.java b/server/src/com/cloud/hypervisor/KVMGuru.java index 80279ad1f92..492342c46a8 100644 --- a/server/src/com/cloud/hypervisor/KVMGuru.java +++ b/server/src/com/cloud/hypervisor/KVMGuru.java @@ -60,8 +60,11 @@ public class KVMGuru extends HypervisorGuruBase implements HypervisorGuru { GuestOSVO guestOS = _guestOsDao.findById(vm.getVirtualMachine().getGuestOSId()); to.setOs(guestOS.getDisplayName()); HostVO host = _hostDao.findById(vm.getVirtualMachine().getHostId()); - GuestOSHypervisorVO guestOsMapping = _guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), getHypervisorType().toString(), host.getHypervisorVersion()); - if (guestOsMapping == null) { + GuestOSHypervisorVO guestOsMapping = null; + if (host != null) { + guestOsMapping = _guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), getHypervisorType().toString(), host.getHypervisorVersion()); + } + if (guestOsMapping == null || host == null) { to.setPlatformEmulator("Other"); } else { to.setPlatformEmulator(guestOsMapping.getGuestOsName()); diff --git a/server/src/com/cloud/hypervisor/LXCGuru.java b/server/src/com/cloud/hypervisor/LXCGuru.java index 7283ac58526..46989d9f561 100644 --- a/server/src/com/cloud/hypervisor/LXCGuru.java +++ b/server/src/com/cloud/hypervisor/LXCGuru.java @@ -56,8 +56,11 @@ public class LXCGuru extends HypervisorGuruBase implements HypervisorGuru { to.setOs(guestOS.getDisplayName()); HostVO host = _hostDao.findById(vm.getVirtualMachine().getHostId()); - GuestOSHypervisorVO guestOsMapping = _guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), getHypervisorType().toString(), host.getHypervisorVersion()); - if (guestOsMapping == null) { + GuestOSHypervisorVO guestOsMapping = null; + if (host != null) { + guestOsMapping = _guestOsHypervisorDao.findByOsIdAndHypervisor(guestOS.getId(), getHypervisorType().toString(), host.getHypervisorVersion()); + } + if (guestOsMapping == null || host == null) { to.setPlatformEmulator("Other"); } else { to.setPlatformEmulator(guestOsMapping.getGuestOsName());