Skip to content

Commit 28a6564

Browse files
author
Daman Arora
committed
Fix SystemVM template URL update for S3
1 parent 1a5625a commit 28a6564

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -959,6 +959,10 @@ public void registerTemplates(List<Pair<Hypervisor.HypervisorType, CPU.CPUArch>>
959959
@Override
960960
public void doInTransactionWithoutResult(final TransactionStatus status) {
961961
List<Long> zoneIds = getEligibleZoneIds();
962+
if (zoneIds.isEmpty()) {
963+
updateTemplateUrlsForNonNfsStores(hypervisorsArchInUse);
964+
return;
965+
}
962966
for (Long zoneId : zoneIds) {
963967
String filePath = null;
964968
try {
@@ -984,6 +988,20 @@ public void doInTransactionWithoutResult(final TransactionStatus status) {
984988
}
985989
}
986990

991+
private void updateTemplateUrlsForNonNfsStores(List<Pair<Hypervisor.HypervisorType, CPU.CPUArch>> hypervisorsInUse) {
992+
for (Pair<Hypervisor.HypervisorType, CPU.CPUArch> hypervisorArch : hypervisorsInUse) {
993+
MetadataTemplateDetails templateDetails = getMetadataTemplateDetails(hypervisorArch.first(), hypervisorArch.second());
994+
if (templateDetails == null) {
995+
continue;
996+
}
997+
VMTemplateVO templateVO = vmTemplateDao.findLatestTemplateByTypeAndHypervisorAndArch(
998+
templateDetails.getHypervisorType(), templateDetails.getArch(), Storage.TemplateType.SYSTEM);
999+
if (templateVO != null) {
1000+
updateTemplateUrlChecksumAndGuestOsId(templateVO, templateDetails);
1001+
}
1002+
}
1003+
}
1004+
9871005
private void updateRegisteredTemplateDetails(Long templateId, MetadataTemplateDetails templateDetails) {
9881006
VMTemplateVO templateVO = vmTemplateDao.findById(templateId);
9891007
templateVO.setTemplateType(Storage.TemplateType.SYSTEM);

0 commit comments

Comments
 (0)