Skip to content

Commit 2037fe4

Browse files
committed
linstor: Use template's uuid if pool's downloadPath is null as resource-name
1 parent 0d5a0ea commit 2037fe4

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

plugins/storage/volume/linstor/src/main/java/org/apache/cloudstack/storage/datastore/driver/LinstorPrimaryDataStoreDriverImpl.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,14 @@
7474
import com.cloud.storage.StoragePool;
7575
import com.cloud.storage.VMTemplateStoragePoolVO;
7676
import com.cloud.storage.VMTemplateStorageResourceAssoc;
77+
import com.cloud.storage.VMTemplateVO;
7778
import com.cloud.storage.Volume;
7879
import com.cloud.storage.VolumeDetailVO;
7980
import com.cloud.storage.VolumeVO;
8081
import com.cloud.storage.dao.SnapshotDao;
8182
import com.cloud.storage.dao.SnapshotDetailsDao;
8283
import com.cloud.storage.dao.SnapshotDetailsVO;
84+
import com.cloud.storage.dao.VMTemplateDao;
8385
import com.cloud.storage.dao.VMTemplatePoolDao;
8486
import com.cloud.storage.dao.VolumeDao;
8587
import com.cloud.storage.dao.VolumeDetailsDao;
@@ -131,6 +133,7 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
131133
ConfigurationDao _configDao;
132134
@Inject
133135
private HostDao _hostDao;
136+
@Inject private VMTemplateDao _vmTemplateDao;
134137

135138
private long volumeStatsLastUpdate = 0L;
136139
private final Map<String, Pair<Long, Long>> volumeStats = new HashMap<>();
@@ -668,8 +671,15 @@ private String cloneResource(long csCloneId, VolumeInfo volumeInfo, StoragePoolV
668671
storagePoolVO.getId(), csCloneId, null);
669672

670673
if (tmplPoolRef != null) {
671-
final String templateRscName = LinstorUtil.RSC_PREFIX + tmplPoolRef.getLocalDownloadPath();
674+
final String templateRscName;
675+
if (tmplPoolRef.getLocalDownloadPath() == null) {
676+
VMTemplateVO vmTemplateVO = _vmTemplateDao.findById(tmplPoolRef.getTemplateId());
677+
templateRscName = LinstorUtil.RSC_PREFIX + vmTemplateVO.getUuid();
678+
}else {
679+
templateRscName = LinstorUtil.RSC_PREFIX + tmplPoolRef.getLocalDownloadPath();
680+
}
672681
final String rscName = LinstorUtil.RSC_PREFIX + volumeInfo.getUuid();
682+
673683
final DevelopersApi linstorApi = LinstorUtil.getLinstorAPI(storagePoolVO.getHostAddress());
674684

675685
try {

0 commit comments

Comments
 (0)