diff --git a/build/cloud.properties b/build/cloud.properties index 65b9f126d5e..b3a50c6c154 100755 --- a/build/cloud.properties +++ b/build/cloud.properties @@ -3,12 +3,12 @@ # major.minor.patch versioning scheme for vmops company.major.version=2 company.minor.version=2 -company.patch.version=4 +company.patch.version=8 svn.revision=2 # copyright year -company.copyright.year=2008-2010 -company.url=http://www.vmops.com +company.copyright.year=2008-2011 +company.url=http://www.cloud.com company.license.name=GPL -company.name=VMOps Inc. +company.name=Cloud.com Inc. diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index ff430ca5a82..0835638b510 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -431,12 +431,7 @@ public class ApiDBUtils { if (vmTemplate.getHypervisorType() == HypervisorType.BareMetal) { return _templateHostDao.listByTemplateId(templateId).get(0); } else { - HostVO secondaryStorageHost = _storageMgr.getSecondaryStorageHost(zoneId); - if (secondaryStorageHost == null) { - return null; - } else { - return _templateHostDao.findByHostTemplate(secondaryStorageHost.getId(), templateId); - } + return _storageMgr.getTemplateHostRef(zoneId, templateId); } } diff --git a/server/src/com/cloud/storage/StorageManager.java b/server/src/com/cloud/storage/StorageManager.java index 5f9a2060289..4dd67699036 100755 --- a/server/src/com/cloud/storage/StorageManager.java +++ b/server/src/com/cloud/storage/StorageManager.java @@ -204,4 +204,6 @@ public interface StorageManager extends Manager { List listByStoragePool(long storagePoolId); StoragePoolVO findLocalStorageOnHost(long hostId); + + VMTemplateHostVO getTemplateHostRef(long zoneId, long tmpltId); } diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index f43a03a8470..cba0aee7e85 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -980,6 +980,21 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag return null; } + @Override + public VMTemplateHostVO getTemplateHostRef(long zoneId, long tmpltId) { + List hosts = _hostDao.listSecondaryStorageHosts(zoneId); + if( hosts == null || hosts.size() == 0) { + return null; + } + for( HostVO host : hosts ) { + VMTemplateHostVO tmpltHost = _vmTemplateHostDao.findByHostTemplate(host.getId(), tmpltId); + if (tmpltHost != null && !tmpltHost.getDestroyed() && tmpltHost.getDownloadState() == VMTemplateStorageResourceAssoc.Status.DOWNLOADED) { + return tmpltHost; + } + } + return null; + } + @Override public HostVO getSecondaryStorageHost(long zoneId) { List hosts = _hostDao.listSecondaryStorageHosts(zoneId);