diff --git a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java index 307216eec4d..a8218202f95 100755 --- a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java +++ b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java @@ -459,10 +459,13 @@ public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMet } s_logger.debug("This is a PXE start, prepare PXE server first"); - List servers = _hostDao.listBy(Host.Type.PxeServer, vm.getDataCenterIdToDeployIn()); + List servers = _hostDao.listBy(Host.Type.PxeServer, null, dest.getPod().getId(), dest.getDataCenter().getId()); if (servers.size() == 0) { throw new CloudRuntimeException("Cannot find PXE server, please make sure there is one PXE server per zone"); } + if (servers.size() > 1) { + throw new CloudRuntimeException("Find more than one PXE server, please make sure there is only one PXE server per zone"); + } HostVO pxeServer = servers.get(0); if (!_pxeMgr.prepare(pxeType, profile, dest, context, pxeServer.getId())) {