diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index 488365b9c9f..44817fdfe21 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -433,7 +433,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 3b2383ef4c1..c8edfeeb3c9 100755 --- a/server/src/com/cloud/template/TemplateAdapterBase.java +++ b/server/src/com/cloud/template/TemplateAdapterBase.java @@ -252,7 +252,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) {