From daa38136ab2e9895d2cbfa7a321b7501fed3b5a7 Mon Sep 17 00:00:00 2001 From: erikbocks Date: Sun, 15 Feb 2026 00:08:21 -0300 Subject: [PATCH 1/3] Change in exception message displayed when creating template from volume --- .../main/java/com/cloud/template/TemplateManagerImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java index 194d97349f01..8ac44c996a8a 100755 --- a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java @@ -476,7 +476,8 @@ public DataStore getImageStore(String storeUuid, Long zoneId, VolumeVO volume) { } if (imageStore == null) { - throw new CloudRuntimeException(String.format("Cannot find an image store for zone [%s].", zoneId)); + logger.error("Cannot find an image store for zone [{}].", zoneId); + throw new CloudRuntimeException("Failed to create template. Please contact the cloud administrator."); } return imageStore; @@ -1702,7 +1703,8 @@ public VirtualMachineTemplate createPrivateTemplate(CreateTemplateCmd command) t } DataStore store = _dataStoreMgr.getImageStoreWithFreeCapacity(zoneId); if (store == null) { - throw new CloudRuntimeException("cannot find an image store for zone " + zoneId); + logger.error("Cannot find an image store for zone [{}].", zoneId); + throw new CloudRuntimeException("Failed to create template. Please contact the cloud administrator."); } AsyncCallFuture future = null; From 4ac7f0ca5e8866ea0d6211b24cc8b10e73a8b84f Mon Sep 17 00:00:00 2001 From: erikbocks Date: Tue, 17 Mar 2026 16:48:11 -0300 Subject: [PATCH 2/3] Address copilot's review for message change --- .../com/cloud/template/TemplateManagerImpl.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java index 8ac44c996a8a..b9f12f2d1318 100755 --- a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java @@ -476,8 +476,7 @@ public DataStore getImageStore(String storeUuid, Long zoneId, VolumeVO volume) { } if (imageStore == null) { - logger.error("Cannot find an image store for zone [{}].", zoneId); - throw new CloudRuntimeException("Failed to create template. Please contact the cloud administrator."); + throwExceptionForImageStoreObtentionFailure(zoneId, "upload volume"); } return imageStore; @@ -1397,7 +1396,7 @@ public boolean deleteTemplate(DeleteTemplateCmd cmd) { @Override @ActionEvent(eventType = EventTypes.EVENT_ISO_DELETE, eventDescription = "Deleting ISO", async = true) - public boolean deleteIso(DeleteIsoCmd cmd) { + public boolean deleteIso (DeleteIsoCmd cmd) { Long templateId = cmd.getId(); Account caller = CallContext.current().getCallingAccount(); Long zoneId = cmd.getZoneId(); @@ -1703,8 +1702,7 @@ public VirtualMachineTemplate createPrivateTemplate(CreateTemplateCmd command) t } DataStore store = _dataStoreMgr.getImageStoreWithFreeCapacity(zoneId); if (store == null) { - logger.error("Cannot find an image store for zone [{}].", zoneId); - throw new CloudRuntimeException("Failed to create template. Please contact the cloud administrator."); + throwExceptionForImageStoreObtentionFailure(zoneId, "create template"); } AsyncCallFuture future = null; @@ -2481,4 +2479,9 @@ public VirtualMachineTemplate linkUserDataToTemplate(LinkUserDataToTemplateCmd c return _tmpltDao.findById(template.getId()); } + + private void throwExceptionForImageStoreObtentionFailure(Long zoneId, String operation) { + logger.error("Cannot find an image store for zone [{}].", zoneId); + throw new CloudRuntimeException(String.format("Failed to %s. Please contact the cloud administrator.", operation)); + } } From 087440609ab2f9b58f198ed9cffe5e17aed0ecc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20B=C3=B6ck?= <89930804+erikbocks@users.noreply.github.com> Date: Wed, 18 Mar 2026 08:13:50 -0300 Subject: [PATCH 3/3] Apply suggestion Co-authored-by: Suresh Kumar Anaparti --- .../src/main/java/com/cloud/template/TemplateManagerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java index b9f12f2d1318..438f6784abd6 100755 --- a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java +++ b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java @@ -1396,7 +1396,7 @@ public boolean deleteTemplate(DeleteTemplateCmd cmd) { @Override @ActionEvent(eventType = EventTypes.EVENT_ISO_DELETE, eventDescription = "Deleting ISO", async = true) - public boolean deleteIso (DeleteIsoCmd cmd) { + public boolean deleteIso(DeleteIsoCmd cmd) { Long templateId = cmd.getId(); Account caller = CallContext.current().getCallingAccount(); Long zoneId = cmd.getZoneId();