Skip to content

Commit 935ed8a

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

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

plugins/storage/volume/linstor/src/main/java/com/cloud/hypervisor/kvm/storage/LinstorStorageAdaptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,7 @@ private static boolean isSystemTemplate(KVMPhysicalDisk disk) {
619619
try {
620620
templateProps.load(new FileInputStream(propFile.toFile()));
621621
String desc = templateProps.getProperty("description");
622-
if (desc.startsWith("SystemVM Template")) {
622+
if (desc != null && desc.startsWith("SystemVM Template")) {
623623
return true;
624624
}
625625
} catch (IOException e) {

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)