This is an automated email from the ASF dual-hosted git repository.

Pearl1594 pushed a commit to branch clvm-iso-deploy-fix
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 86fa58ec68cfc0d89de36f737d427fb19ec7ce2d
Author: Pearl Dsilva <[email protected]>
AuthorDate: Thu Jul 30 07:52:34 2026 -0400

    CLVM/ISO: Ensure volume is created on the same host as the VM being 
deployed on
---
 .../cloudstack/engine/orchestration/VolumeOrchestrator.java   | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git 
a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
 
b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
index f4198819dd1..4331721deca 100644
--- 
a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
+++ 
b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
@@ -2025,6 +2025,17 @@ public class VolumeOrchestrator extends ManagerBase 
implements VolumeOrchestrati
 
                 volume = volFactory.getVolume(newVol.getId(), destPool);
 
+                // CLVM: pin templateless volume creation to the deploy host
+                StoragePoolVO poolVO = 
_storagePoolDao.findById(destPool.getId());
+                if (poolVO != null && 
ClvmPoolManager.isClvmPoolType(poolVO.getPoolType())) {
+                    Long hostId = vm.getVirtualMachine().getHostId();
+                    if (hostId != null) {
+                        volume.setDestinationHostId(hostId);
+                        clvmPoolManager.setClvmLockHostId(volume.getId(), 
hostId);
+                        logger.info("CLVM pool detected during volume creation 
without a template. Setting lock host {} for volume {} "
+                                + "(persisted to DB) to route creation to 
correct host", hostId, volume.getUuid());
+                    }
+                }
                 future = volService.createVolumeAsync(volume, destPool);
             } else {
                 final VirtualMachineTemplate template = 
_entityMgr.findById(VirtualMachineTemplate.class, templateId);

Reply via email to