This is an automated email from the ASF dual-hosted git repository.

dahn 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 c0128e2f9a4 Improve template download error message (#8029)
c0128e2f9a4 is described below

commit c0128e2f9a4cade8b9129de99916970c72bc212c
Author: Oscar Sandoval <[email protected]>
AuthorDate: Mon Oct 9 01:20:13 2023 -0700

    Improve template download error message (#8029)
---
 .../direct/download/DirectDownloadManagerImpl.java           | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/cloudstack/direct/download/DirectDownloadManagerImpl.java
 
b/server/src/main/java/org/apache/cloudstack/direct/download/DirectDownloadManagerImpl.java
index 17cb96931ec..af543c6c798 100644
--- 
a/server/src/main/java/org/apache/cloudstack/direct/download/DirectDownloadManagerImpl.java
+++ 
b/server/src/main/java/org/apache/cloudstack/direct/download/DirectDownloadManagerImpl.java
@@ -42,6 +42,7 @@ import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
 import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.user.Account;
 import com.cloud.utils.Pair;
 import org.apache.cloudstack.agent.directdownload.DirectDownloadAnswer;
 import org.apache.cloudstack.agent.directdownload.DirectDownloadCommand;
@@ -329,6 +330,8 @@ public class DirectDownloadManagerImpl extends ManagerBase 
implements DirectDown
         Long[] hostsToRetry = getHostsToRetryOn(host, storagePoolVO);
         int hostIndex = 0;
         Answer answer = null;
+        String answerDetails = "";
+        String errorDetails = "";
         Long hostToSendDownloadCmd = hostsToRetry[hostIndex];
         boolean continueRetrying = true;
         while (!downloaded && retry > 0 && continueRetrying) {
@@ -349,6 +352,7 @@ public class DirectDownloadManagerImpl extends ManagerBase 
implements DirectDown
                 if (answer != null) {
                     DirectDownloadAnswer ans = (DirectDownloadAnswer)answer;
                     downloaded = answer.getResult();
+                    answerDetails = answer.getDetails();
                     continueRetrying = ans.isRetryOnOtherHosts();
                 }
                 hostToSendDownloadCmd = hostsToRetry[(hostIndex + 1) % 
hostsToRetry.length];
@@ -362,7 +366,13 @@ public class DirectDownloadManagerImpl extends ManagerBase 
implements DirectDown
         }
         if (!downloaded) {
             logUsageEvent(template, poolId);
-            throw new CloudRuntimeException("Template " + template.getId() + " 
could not be downloaded on pool " + poolId + ", failing after trying on several 
hosts");
+            if (!answerDetails.isEmpty()){
+                Account caller = CallContext.current().getCallingAccount();
+                if (caller != null && caller.getType() == Account.Type.ADMIN){
+                    errorDetails = String.format(" Details: %s", 
answerDetails);
+                }
+            }
+            throw new CloudRuntimeException(String.format("Template %d could 
not be downloaded on pool %d, failing after trying on several hosts%s", 
template.getId(), poolId, errorDetails));
         }
         return answer;
     }

Reply via email to