Skip to content

Commit 0dd6bb7

Browse files
systemvm: update size and state of systemvm template during registration (#7874)
1 parent 57d4d0d commit 0dd6bb7

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

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

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -509,13 +509,12 @@ private void createTemplateStoreRefEntry(SystemVMTemplateDetails details) {
509509
}
510510
}
511511

512-
public void updateTemplateDetails(SystemVMTemplateDetails details, boolean updateTemplateDetails) {
512+
public void updateTemplateDetails(SystemVMTemplateDetails details) {
513513
VMTemplateVO template = vmTemplateDao.findById(details.getId());
514-
if (updateTemplateDetails) {
515-
template.setSize(details.getSize());
516-
template.setState(VirtualMachineTemplate.State.Active);
517-
vmTemplateDao.update(template.getId(), template);
518-
}
514+
template.setSize(details.getSize());
515+
template.setState(VirtualMachineTemplate.State.Active);
516+
vmTemplateDao.update(template.getId(), template);
517+
519518
TemplateDataStoreVO templateDataStoreVO = templateDataStoreDao.findByStoreTemplate(details.getStoreId(), template.getId());
520519
templateDataStoreVO.setSize(details.getSize());
521520
templateDataStoreVO.setPhysicalSize(details.getPhysicalSize());
@@ -613,7 +612,7 @@ private void setupTemplate(String templateName, Pair<Hypervisor.HypervisorType,
613612

614613
private Long performTemplateRegistrationOperations(Pair<Hypervisor.HypervisorType, String> hypervisorAndTemplateName,
615614
String url, String checksum, ImageFormat format, long guestOsId,
616-
Long storeId, Long templateId, String filePath, boolean updateTmpltDetails) {
615+
Long storeId, Long templateId, String filePath, TemplateDataStoreVO templateDataStoreVO) {
617616
Hypervisor.HypervisorType hypervisor = hypervisorAndTemplateName.first();
618617
String templateName = UUID.randomUUID().toString();
619618
Date created = new Date(DateUtil.currentGMTTime().getTime());
@@ -631,21 +630,24 @@ private Long performTemplateRegistrationOperations(Pair<Hypervisor.HypervisorTyp
631630
String destTempFolderName = String.valueOf(templateId);
632631
String destTempFolder = filePath + PARTIAL_TEMPLATE_FOLDER + destTempFolderName;
633632
details.setInstallPath(PARTIAL_TEMPLATE_FOLDER + destTempFolderName + File.separator + templateName + "." + hypervisorImageFormat.get(hypervisor).getFileExtension());
634-
createTemplateStoreRefEntry(details);
633+
if (templateDataStoreVO == null) {
634+
createTemplateStoreRefEntry(details);
635+
}
635636
setupTemplate(templateName, hypervisorAndTemplateName, destTempFolder);
636637
readTemplateProperties(destTempFolder + "/template.properties", details);
637638
details.setUpdated(new Date(DateUtil.currentGMTTime().getTime()));
638-
updateTemplateDetails(details, updateTmpltDetails);
639+
updateTemplateDetails(details);
639640
return templateId;
640641
}
641642

642643
public void registerTemplate(Pair<Hypervisor.HypervisorType, String> hypervisorAndTemplateName,
643-
Pair<String, Long> storeUrlAndId, VMTemplateVO templateVO, String filePath) {
644+
Pair<String, Long> storeUrlAndId, VMTemplateVO templateVO,
645+
TemplateDataStoreVO templateDataStoreVO, String filePath) {
644646
Long templateId = null;
645647
try {
646648
templateId = templateVO.getId();
647649
performTemplateRegistrationOperations(hypervisorAndTemplateName, templateVO.getUrl(), templateVO.getChecksum(),
648-
templateVO.getFormat(), templateVO.getGuestOSId(), storeUrlAndId.second(), templateId, filePath, false);
650+
templateVO.getFormat(), templateVO.getGuestOSId(), storeUrlAndId.second(), templateId, filePath, templateDataStoreVO);
649651
} catch (Exception e) {
650652
String errMsg = String.format("Failed to register template for hypervisor: %s", hypervisorAndTemplateName.first());
651653
LOGGER.error(errMsg, e);
@@ -662,7 +664,7 @@ public void registerTemplate(Pair<Hypervisor.HypervisorType, String> hypervisorA
662664
try {
663665
Hypervisor.HypervisorType hypervisor = hypervisorAndTemplateName.first();
664666
templateId = performTemplateRegistrationOperations(hypervisorAndTemplateName, NewTemplateUrl.get(hypervisor), NewTemplateChecksum.get(hypervisor),
665-
hypervisorImageFormat.get(hypervisor), hypervisorGuestOsMap.get(hypervisor), storeUrlAndId.second(), null, filePath, true);
667+
hypervisorImageFormat.get(hypervisor), hypervisorGuestOsMap.get(hypervisor), storeUrlAndId.second(), null, filePath, null);
666668
Map<String, String> configParams = new HashMap<>();
667669
configParams.put(RouterTemplateConfigurationNames.get(hypervisorAndTemplateName.first()), hypervisorAndTemplateName.second());
668670
configParams.put("minreq.sysvmtemplate.version", getSystemVmTemplateVersion());
@@ -783,7 +785,7 @@ public void doInTransactionWithoutResult(final TransactionStatus status) {
783785
if (validateIfSeeded(storeUrlAndId.first(), installPath)) {
784786
continue;
785787
} else if (templateVO != null) {
786-
registerTemplate(hypervisorAndTemplateName, storeUrlAndId, templateVO, filePath);
788+
registerTemplate(hypervisorAndTemplateName, storeUrlAndId, templateVO, templateDataStoreVO, filePath);
787789
continue;
788790
}
789791
}

server/src/main/java/com/cloud/storage/StorageManagerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2919,7 +2919,7 @@ public void doInTransactionWithoutResult(final TransactionStatus status) {
29192919
}
29202920
SystemVmTemplateRegistration.mountStore(storeUrlAndId.first(), filePath);
29212921
if (templateVO != null && vmTemplateVO != null) {
2922-
systemVmTemplateRegistration.registerTemplate(hypervisorAndTemplateName, storeUrlAndId, vmTemplateVO, filePath);
2922+
systemVmTemplateRegistration.registerTemplate(hypervisorAndTemplateName, storeUrlAndId, vmTemplateVO, templateVO, filePath);
29232923
} else {
29242924
systemVmTemplateRegistration.registerTemplate(hypervisorAndTemplateName, storeUrlAndId, filePath);
29252925
}

0 commit comments

Comments
 (0)