Skip to content

Commit 7ccaf4e

Browse files
missing changes
1 parent fb053ca commit 7ccaf4e

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateServiceImpl.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -660,16 +660,13 @@ private boolean searchAndCopyAcrossZones(VMTemplateVO tmplt, DataStore destStore
660660

661661
protected TemplateObject findUsableTemplate(VMTemplateVO tmplt, List<DataStore> imageStores) {
662662
for (DataStore store : imageStores) {
663-
TemplateObject tmpl = (TemplateObject) _templateFactory.getTemplate(tmplt.getId(), store);
664-
if (tmpl == null) {
665-
continue;
666-
}
667663

668664
Map<String, TemplateProp> templates = listTemplate(store);
669665
if (templates == null || !templates.containsKey(tmplt.getUniqueName())) {
670666
continue;
671667
}
672668

669+
TemplateObject tmpl = (TemplateObject) _templateFactory.getTemplate(tmplt.getId(), store);
673670
if (tmpl.getInstallPath() == null) {
674671
logger.debug("Template [{}] found in image store [{}] but install path is null. Skipping.",
675672
tmplt.getUniqueName(), store.getName());

engine/storage/image/src/test/java/org/apache/cloudstack/storage/image/TemplateServiceImplTest.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ public void tryCopyingTemplateToImageStoreTestReturnsTrueWhenTemplateExistsInAno
204204
Mockito.doReturn(scopeMock).when(destStoreMock).getScope();
205205
Mockito.doReturn(1L).when(scopeMock).getScopeId();
206206
Mockito.doReturn(100L).when(tmpltMock).getId();
207+
Mockito.doReturn("unique-name").when(tmpltMock).getUniqueName();
207208
Mockito.doReturn(List.of(sourceStoreMock)).when(dataStoreManagerMock).getImageStoresByZoneIds(1L);
208209
Mockito.doReturn(null).when(templateService).listTemplate(sourceStoreMock);
209210
Mockito.doReturn(List.of(1L, 2L)).when(_dcDao).listAllIds();
@@ -212,7 +213,8 @@ public void tryCopyingTemplateToImageStoreTestReturnsTrueWhenTemplateExistsInAno
212213
Mockito.doReturn(List.of(otherZoneStoreMock)).when(dataStoreManagerMock).getImageStoresByZoneIds(2L);
213214

214215
Map<String, TemplateProp> templatesInOtherZone = new HashMap<>();
215-
templatesInOtherZone.put(tmpltMock.getUniqueName(), tmpltPropMock);
216+
templatesInOtherZone.put("unique-name", tmpltPropMock);
217+
Mockito.doReturn(templatesInOtherZone).when(templateService).listTemplate(otherZoneStoreMock);
216218

217219
TemplateObject sourceTmplMock = Mockito.mock(TemplateObject.class);
218220
Mockito.doReturn(sourceTmplMock).when(templateDataFactoryMock).getTemplate(100L, otherZoneStoreMock);
@@ -232,14 +234,16 @@ public void tryCopyingTemplateToImageStoreTestReturnsFalseWhenDestinationZoneIsM
232234
Mockito.doReturn(scopeMock).when(destStoreMock).getScope();
233235
Mockito.doReturn(1L).when(scopeMock).getScopeId();
234236
Mockito.doReturn(100L).when(tmpltMock).getId();
237+
Mockito.doReturn("unique-name").when(tmpltMock).getUniqueName();
235238
Mockito.doReturn(List.of(1L, 2L)).when(_dcDao).listAllIds();
236239
Mockito.doReturn(List.of()).when(dataStoreManagerMock).getImageStoresByZoneIds(1L);
237240

238241
DataStore otherZoneStoreMock = Mockito.mock(DataStore.class);
239242
Mockito.doReturn(List.of(otherZoneStoreMock)).when(dataStoreManagerMock).getImageStoresByZoneIds(2L);
240243

241244
Map<String, TemplateProp> templates = new HashMap<>();
242-
templates.put(tmpltMock.getUniqueName(), tmpltPropMock);
245+
templates.put("unique-name", tmpltPropMock);
246+
Mockito.doReturn(templates).when(templateService).listTemplate(otherZoneStoreMock);
243247

244248
TemplateObject sourceTmplMock = Mockito.mock(TemplateObject.class);
245249
Mockito.doReturn(sourceTmplMock).when(templateDataFactoryMock).getTemplate(100L, otherZoneStoreMock);
@@ -257,14 +261,17 @@ public void tryCopyingTemplateToImageStoreTestReturnsTrueWhenCrossZoneCopyTaskIs
257261
Mockito.doReturn(scopeMock).when(destStoreMock).getScope();
258262
Mockito.doReturn(1L).when(scopeMock).getScopeId();
259263
Mockito.doReturn(100L).when(tmpltMock).getId();
264+
Mockito.doReturn("unique-name").when(tmpltMock).getUniqueName();
260265
Mockito.doReturn(List.of(1L, 2L)).when(_dcDao).listAllIds();
261266
Mockito.doReturn(List.of()).when(dataStoreManagerMock).getImageStoresByZoneIds(1L);
262267

263268
DataStore otherZoneStoreMock = Mockito.mock(DataStore.class);
264269
Mockito.doReturn(List.of(otherZoneStoreMock)).when(dataStoreManagerMock).getImageStoresByZoneIds(2L);
265270

266271
Map<String, TemplateProp> templates = new HashMap<>();
267-
templates.put(tmpltMock.getUniqueName(), tmpltPropMock);
272+
templates.put("unique-name", tmpltPropMock);
273+
274+
Mockito.doReturn(templates).when(templateService).listTemplate(otherZoneStoreMock);
268275

269276
TemplateObject sourceTmplMock = Mockito.mock(TemplateObject.class);
270277
Mockito.doReturn(sourceTmplMock).when(templateDataFactoryMock).getTemplate(100L, otherZoneStoreMock);
@@ -302,8 +309,6 @@ public void testFindUsableTemplateReturnsTemplateWithNonNullInstallPath() {
302309
Mockito.when(storeWithNullPath.getName()).thenReturn("store-null");
303310

304311
DataStore storeWithValidPath = Mockito.mock(DataStore.class);
305-
Mockito.when(storeWithValidPath.getName()).thenReturn("store-valid");
306-
307312
TemplateObject tmplWithNullPath = Mockito.mock(TemplateObject.class);
308313
Mockito.when(tmplWithNullPath.getInstallPath()).thenReturn(null);
309314

0 commit comments

Comments
 (0)