|
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