|
74 | 74 | import com.cloud.storage.StoragePool; |
75 | 75 | import com.cloud.storage.VMTemplateStoragePoolVO; |
76 | 76 | import com.cloud.storage.VMTemplateStorageResourceAssoc; |
| 77 | +import com.cloud.storage.VMTemplateVO; |
77 | 78 | import com.cloud.storage.Volume; |
78 | 79 | import com.cloud.storage.VolumeDetailVO; |
79 | 80 | import com.cloud.storage.VolumeVO; |
80 | 81 | import com.cloud.storage.dao.SnapshotDao; |
81 | 82 | import com.cloud.storage.dao.SnapshotDetailsDao; |
82 | 83 | import com.cloud.storage.dao.SnapshotDetailsVO; |
| 84 | +import com.cloud.storage.dao.VMTemplateDao; |
83 | 85 | import com.cloud.storage.dao.VMTemplatePoolDao; |
84 | 86 | import com.cloud.storage.dao.VolumeDao; |
85 | 87 | import com.cloud.storage.dao.VolumeDetailsDao; |
@@ -131,6 +133,7 @@ public class LinstorPrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver |
131 | 133 | ConfigurationDao _configDao; |
132 | 134 | @Inject |
133 | 135 | private HostDao _hostDao; |
| 136 | + @Inject private VMTemplateDao _vmTemplateDao; |
134 | 137 |
|
135 | 138 | private long volumeStatsLastUpdate = 0L; |
136 | 139 | private final Map<String, Pair<Long, Long>> volumeStats = new HashMap<>(); |
@@ -668,8 +671,15 @@ private String cloneResource(long csCloneId, VolumeInfo volumeInfo, StoragePoolV |
668 | 671 | storagePoolVO.getId(), csCloneId, null); |
669 | 672 |
|
670 | 673 | 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 | + } |
672 | 681 | final String rscName = LinstorUtil.RSC_PREFIX + volumeInfo.getUuid(); |
| 682 | + |
673 | 683 | final DevelopersApi linstorApi = LinstorUtil.getLinstorAPI(storagePoolVO.getHostAddress()); |
674 | 684 |
|
675 | 685 | try { |
|
0 commit comments