Repository: cloudstack Updated Branches: refs/heads/master df198d07e -> e491716aa
CLOUDSTACK-7478, CLOUDSTACK-7479: Check for correct storage pool type for ROOT and Data disks in LXC Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e491716a Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e491716a Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e491716a Branch: refs/heads/master Commit: e491716aa7524e620e740fb687cdbde49b9e94b2 Parents: df198d0 Author: Kishan Kavala <[email protected]> Authored: Thu Sep 4 22:55:20 2014 +0530 Committer: Kishan Kavala <[email protected]> Committed: Thu Sep 4 22:55:30 2014 +0530 ---------------------------------------------------------------------- .../allocator/AbstractStoragePoolAllocator.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e491716a/engine/storage/src/org/apache/cloudstack/storage/allocator/AbstractStoragePoolAllocator.java ---------------------------------------------------------------------- diff --git a/engine/storage/src/org/apache/cloudstack/storage/allocator/AbstractStoragePoolAllocator.java b/engine/storage/src/org/apache/cloudstack/storage/allocator/AbstractStoragePoolAllocator.java index d3df356..d717f72 100755 --- a/engine/storage/src/org/apache/cloudstack/storage/allocator/AbstractStoragePoolAllocator.java +++ b/engine/storage/src/org/apache/cloudstack/storage/allocator/AbstractStoragePoolAllocator.java @@ -27,6 +27,7 @@ import java.util.Random; import javax.inject.Inject; import javax.naming.ConfigurationException; +import com.cloud.storage.Storage; import org.apache.log4j.Logger; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; @@ -179,6 +180,23 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement return false; } + if(HypervisorType.LXC.equals(dskCh.getHypervisorType())){ + if(Volume.Type.ROOT.equals(dskCh.getType())){ + //LXC ROOT disks supports NFS and local storage pools only + if(!(Storage.StoragePoolType.NetworkFilesystem.equals(pool.getPoolType()) || + Storage.StoragePoolType.Filesystem.equals(pool.getPoolType())) ){ + s_logger.debug("StoragePool does not support LXC ROOT disk, skipping this pool"); + return false; + } + } else if (Volume.Type.DATADISK.equals(dskCh.getType())){ + //LXC DATA disks supports NFS and local storage pools only + if(!Storage.StoragePoolType.RBD.equals(pool.getPoolType())){ + s_logger.debug("StoragePool does not support LXC DATA disk, skipping this pool"); + return false; + } + } + } + // check capacity Volume volume = _volumeDao.findById(dskCh.getVolumeId()); List<Volume> requestVolumes = new ArrayList<Volume>();
