diff --git a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java index 895424cf1a3..105824f8707 100755 --- a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java +++ b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java @@ -472,10 +472,13 @@ public class BareMetalVmManagerImpl extends UserVmManagerImpl implements BareMet } s_logger.debug("This is a PXE start, prepare PXE server first"); - List servers = _resourceMgr.listAllUpAndEnabledHostsInOneZoneByType(Host.Type.PxeServer, dest.getDataCenter().getId()); + List servers = _resourceMgr.listAllUpAndEnabledHosts(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 in pod " + dest.getPod().getId() + " zone " + dest.getDataCenter().getId()); + } HostVO pxeServer = servers.get(0); if (!_pxeMgr.prepare(pxeType, profile, dest, context, pxeServer.getId())) {