mirror of https://github.com/apache/cloudstack.git
SWIFT : check swift in storage allocator
This commit is contained in:
parent
a24589710a
commit
6e259b2cb1
|
|
@ -46,6 +46,7 @@ import com.cloud.storage.VMTemplateHostVO;
|
|||
import com.cloud.storage.VMTemplateStoragePoolVO;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
|
||||
import com.cloud.storage.VMTemplateSwiftVO;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.Volume.Type;
|
||||
import com.cloud.storage.dao.StoragePoolDao;
|
||||
|
|
@ -54,6 +55,7 @@ import com.cloud.storage.dao.VMTemplateDao;
|
|||
import com.cloud.storage.dao.VMTemplateHostDao;
|
||||
import com.cloud.storage.dao.VMTemplatePoolDao;
|
||||
import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.storage.swift.SwiftManager;
|
||||
import com.cloud.template.TemplateManager;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
|
|
@ -75,6 +77,8 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement
|
|||
@Inject StoragePoolHostDao _poolHostDao;
|
||||
@Inject ConfigurationDao _configDao;
|
||||
@Inject ClusterDao _clusterDao;
|
||||
@Inject
|
||||
SwiftManager _swiftMgr;
|
||||
float _storageOverprovisioningFactor;
|
||||
long _extraBytesPerVolume = 0;
|
||||
Random _rand;
|
||||
|
|
@ -238,7 +242,15 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement
|
|||
VMTemplateHostVO templateHostVO = _storageMgr.findVmTemplateHost(template.getId(), pool);
|
||||
|
||||
if (templateHostVO == null) {
|
||||
s_logger.info("Did not find template downloaded on secondary hosts in zone " + plan.getDataCenterId());
|
||||
VMTemplateSwiftVO templateSwiftVO = _swiftMgr.findByTmpltId(template.getId());
|
||||
if (templateSwiftVO == null) {
|
||||
s_logger.info("Did not find template downloaded on secondary hosts in zone " + plan.getDataCenterId());
|
||||
}
|
||||
long templateSize = templateSwiftVO.getPhysicalSize();
|
||||
if (templateSize == 0) {
|
||||
templateSize = templateSwiftVO.getSize();
|
||||
}
|
||||
totalAllocatedSize += (templateSize + _extraBytesPerVolume);
|
||||
return false;
|
||||
} else {
|
||||
long templateSize = templateHostVO.getPhysicalSize();
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import com.cloud.api.commands.ListSwiftsCmd;
|
|||
import com.cloud.exception.DiscoveryException;
|
||||
import com.cloud.storage.Swift;
|
||||
import com.cloud.storage.SwiftVO;
|
||||
import com.cloud.storage.VMTemplateSwiftVO;
|
||||
import com.cloud.utils.component.Manager;
|
||||
public interface SwiftManager extends Manager {
|
||||
|
||||
|
|
@ -58,4 +59,6 @@ public interface SwiftManager extends Manager {
|
|||
Long chooseZoneForTmpltExtract(Long tmpltId);
|
||||
|
||||
List<SwiftVO> listSwifts(ListSwiftsCmd cmd);
|
||||
|
||||
VMTemplateSwiftVO findByTmpltId(Long tmpltId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -278,6 +278,10 @@ public class SwiftManagerImpl implements SwiftManager {
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public VMTemplateSwiftVO findByTmpltId(Long tmpltId) {
|
||||
return _vmTmpltSwiftlDao.findOneByTemplateId(tmpltId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean stop() {
|
||||
|
|
|
|||
|
|
@ -475,7 +475,7 @@ public class TemplateManagerImpl implements TemplateManager, Manager, TemplateSe
|
|||
s_logger.warn(errMsg);
|
||||
return errMsg;
|
||||
}
|
||||
VMTemplateSwiftVO tmpltSwift = _tmpltSwiftDao.findOneByTemplateId(templateId);
|
||||
VMTemplateSwiftVO tmpltSwift = _swiftMgr.findByTmpltId(templateId);
|
||||
if ( tmpltSwift == null ) {
|
||||
String errMsg = " Template " + templateId + " doesn't exist in swift";
|
||||
s_logger.warn(errMsg);
|
||||
|
|
|
|||
Loading…
Reference in New Issue