diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index 3a80f982b11..5feb6f503f4 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -437,7 +437,8 @@ public class ApiDBUtils { public static VMTemplateHostVO findTemplateHostRef(long templateId, long zoneId, boolean readyOnly) { VMTemplateVO vmTemplate = findTemplateById(templateId); if (vmTemplate.getHypervisorType() == HypervisorType.BareMetal) { - return _templateHostDao.listByTemplateId(templateId).get(0); + List res = _templateHostDao.listByTemplateId(templateId); + return res.size() == 0 ? null : res.get(0); } else { return _storageMgr.getTemplateHostRef(zoneId, templateId, readyOnly); } diff --git a/server/src/com/cloud/template/TemplateAdapterBase.java b/server/src/com/cloud/template/TemplateAdapterBase.java index 150185f0aab..88d646d8331 100755 --- a/server/src/com/cloud/template/TemplateAdapterBase.java +++ b/server/src/com/cloud/template/TemplateAdapterBase.java @@ -256,7 +256,7 @@ public abstract class TemplateAdapterBase implements TemplateAdapter { profile.getBits(), profile.getAccountId(), profile.getCheckSum(), profile.getDisplayText(), profile.getPasswordEnabled(), profile.getGuestOsId(), profile.getBootable(), profile.getHypervisorType()); - if (zoneId == null) { + if (zoneId == null || zoneId == -1) { List dcs = _dcDao.listAllIncludingRemoved(); for (DataCenterVO dc: dcs) {