This is an automated email from the ASF dual-hosted git repository.
weizhou pushed a commit to branch 4.18
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.18 by this push:
new 0e08a126dfd systemvm: add template_zone_ref record when add a new zone
with same hypervisor type (#8395)
0e08a126dfd is described below
commit 0e08a126dfd38cc6894e5ecd60757d2a90b38db1
Author: Wei Zhou <[email protected]>
AuthorDate: Thu Apr 25 08:41:59 2024 +0200
systemvm: add template_zone_ref record when add a new zone with same
hypervisor type (#8395)
---
.../java/com/cloud/upgrade/SystemVmTemplateRegistration.java | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git
a/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java
b/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java
index dc94dd708b1..1ee42674480 100644
---
a/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java
+++
b/engine/schema/src/main/java/com/cloud/upgrade/SystemVmTemplateRegistration.java
@@ -482,19 +482,19 @@ public class SystemVmTemplateRegistration {
templateZoneVO = vmTemplateZoneDao.persist(templateZoneVO);
} else {
templateZoneVO.setLastUpdated(new java.util.Date());
- if (vmTemplateZoneDao.update(templateZoneVO.getId(),
templateZoneVO)) {
+ if (!vmTemplateZoneDao.update(templateZoneVO.getId(),
templateZoneVO)) {
templateZoneVO = null;
}
}
return templateZoneVO;
}
- private void createCrossZonesTemplateZoneRefEntries(VMTemplateVO template)
{
+ private void createCrossZonesTemplateZoneRefEntries(Long templateId) {
List<DataCenterVO> dcs = dataCenterDao.listAll();
for (DataCenterVO dc : dcs) {
- VMTemplateZoneVO templateZoneVO =
createOrUpdateTemplateZoneEntry(dc.getId(), template.getId());
+ VMTemplateZoneVO templateZoneVO =
createOrUpdateTemplateZoneEntry(dc.getId(), templateId);
if (templateZoneVO == null) {
- throw new CloudRuntimeException(String.format("Failed to
create template_zone_ref record for the systemVM template for hypervisor: %s
and zone: %s", template.getHypervisorType().name(), dc));
+ throw new CloudRuntimeException(String.format("Failed to
create template_zone_ref record for the systemVM template (id: %s) and zone:
%s", templateId, dc));
}
}
}
@@ -624,8 +624,9 @@ public class SystemVmTemplateRegistration {
throw new CloudRuntimeException(String.format("Failed to
register template for hypervisor: %s", hypervisor.name()));
}
templateId = template.getId();
- createCrossZonesTemplateZoneRefEntries(template);
}
+ createCrossZonesTemplateZoneRefEntries(templateId);
+
details.setId(templateId);
String destTempFolderName = String.valueOf(templateId);
String destTempFolder = filePath + PARTIAL_TEMPLATE_FOLDER +
destTempFolderName;